永发信息网

求一个用C语言头插法建立单链表的程序

答案:1  悬赏:70  手机版
解决时间 2021-06-02 01:00
  • 提问者网友:风月客
  • 2021-06-01 08:56
要详细的解释!本人语句相当混乱!跪谢!
最佳答案
  • 五星知识达人网友:佘樂
  • 2021-06-01 10:23
#include <stdio.h>
#include <stdlib.h>

typedef struct _list {
int val;
struct _list* next;
} *node, list;

// 在pos位置之后插一个节点,pos为空则在头部插入
node insert( node* head, node pos, int val )
{
node tmp;
tmp = ( node )malloc( sizeof( list ) );
tmp->val = val;
tmp->next = pos ? pos->next : *head;
return ( pos ? pos->next : *head ) = tmp;
}

// 从数组简单构造一个链表
node create( int* beg, int* end )
{
node head = NULL;
while ( beg != end ) {
insert( &head, NULL, *beg++ ); // 在头部插入
}
return head;
}

// 遍历输出各个节点的值
void print( node head )
{
while ( head ) {
printf( "%d ", head->val );
head = head->next;
}
putchar( '\n' );
}

int main()
{
int a[] = { 0,1,2,3,4,5,6,7,8,9 };
node head;
head = create( a, a + 10 );
print( head );
return 0;
}

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯