请按照输入整数的顺序建立一个带表头节点的链表。已知程序的基本结构如下,请你编写 ins_list 函数。
预设代码
#include "stdio.h"
#include "stdlib.h"
struct node
{ int data; //数据
struct node * next; //指针
} ;
//命名
typedef struct node NODE;
typedef struct node * PNODE;
void outlist( PNODE );
int ins_list( PNODE, int );
int main ( )
{ int num=1;
PNODE head;
head = (PNODE)malloc( sizeof(NODE) );
head->next = NULL; //头指针为空
head->data = -1;
while ( num!=0 )
{ scanf("%d", &num);
if ( num!=0 )
ins_list( head, num);
}
outlist( head );
return 0;
}
void outlist( PNODE head )
{ PNODE p;
p = head->next;
while ( p != NULL )
{ printf("%d\n", p->data);
p = p->next; //遍历链表
}
}
提交代码
int ins_list( PNODE h, int num )
{
PNODE p=(PNODE)malloc( sizeof(NODE) );
while(h->next){
h=h->next;
}
p->data=num;
p->next=NULL;
h->next=p;
}