#include<stdio.h>
#include<stdlib.h>
int main()
{
struct list{
int num;
struct list* prior;
};
char key;
struct list *head = NULL;
struct list *last = NULL;
struct list *p = NULL;
printf("do u want to write ur data?\n");
scanf("%c", &key);
while(key == 'y')
{
p = (struct list*)malloc(sizeof(struct list));
if(!p)
printf("no enough memory \n");
printf("in out ur data\n");
scanf("%d", &p->num);
p->prior = NULL;
if(head == NULL)
{
head = p;
last = p;
}
else
{
p->prior = head; //新建节点的上一个节点指向头结点
head = p; //始终令新建节点为头结点
}
printf("\ndo u want to continue?\n");
scanf(" %c", &key);
}
while(head!= NULL)
{
printf("%d", head->num);
head = head->prior;
}
return 0;
}
【C语言】单向链表 头插法
双向链表实现
最新推荐文章于 2023-09-23 22:24:38 发布
本文介绍了一个简单的双向链表实现过程,包括链表节点结构定义、内存分配、数据输入及输出等基本操作。通过循环读取用户输入的方式不断创建新的节点,并将其作为头节点插入到链表中。
9556

被折叠的 条评论
为什么被折叠?



