单链表(带头节点)的尾插法建表
先附上代码
#include<stdio.h>
#include<stdlib.h>
typedef struct LNode
{
int data;
struct LNode *next;
}LNode;
LNode* creatLinkListR(LNode *o)
{
o = (LNode*)malloc(sizeof(LNode));
o->next = NULL;
LNode *p = NULL, *r = o;
int n;
printf("请输入节点个数:");
scanf("%d",&n);
for(int i = 0; i < n; i++)
{
p = (LNode*)malloc(sizeof(LNode));
p->next = NULL;
printf("\n请输入第%d个节点数的值:\t",i+1);
scanf("%d",&(p->data));
r->next = p;
r = p;
}
return o;
}
void print(LNode *l)
{
printf("\n链表元素如下:\n");
while(l->next!=NULL)
{
l=l->next;
printf("%d ",l->data);
}
}
int main()
{
LNode *head;
head=creatLinkListR(head);
print(head);
}
结构体
typedef 是给struct重新命名,以使用方便,使用方法请参考: link
有头节点时尾插函数creatLinkListR(如上)是否可以用void型
链接如下: link.