#include <stdio.h>
#include <stdio.h>
#include <malloc.h>
//定义链表结构体
typedef struct node
{
char name[20];
struct node *prior;
struct node *next;
}stud;
//创建链表,其中链表的节点数是count
stud *create(int count)
{
stud *pNewNode = NULL;
stud *pNode = NULL;
stud *head = NULL;
int i;
//初始化头结点
head = (stud*)malloc(sizeof(stud));
head->name[0] = '\0';
head->next = NULL;
head->prior = NULL;
pNode = head;
for(i = 0;i < count;i++) //循环创建节点
{
pNewNode = (stud*)malloc(sizeof(stud));
pNode->next = pNewNode;
printf("Input the %d students name:",i+1);
scanf("%s",pNewNode->name);
pNewNode->prior = pNode;
pNewNode->next = NULL;
//移动pNode节点到最新的末尾节点
pNode = pNewNode;
}
pNode = NULL;
return head;
}
int main()
{
int count; //定义链表的大小,节点个数
stud *head = NULL;
stud *temp = NULL;
puts("Input the size of list: ");
scanf("%d",&count);
head = create(count); //创建链表
temp = head;
while(temp) //输出链表数据
{
printf("%s",temp->name);
temp = temp->next;
}
return 0;
}
双链表的创建 C语言实现
最新推荐文章于 2024-07-04 11:06:26 发布