求一个用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;
}
#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;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯