C语言版单向链表的简单实现教程
程序员文章站
2022-04-15 13:09:09
C语言版单向链表的简单实现教程
#include
#include
//定义一个结构体代表链表结点
struct node{...
C语言版单向链表的简单实现教程
#include #include //定义一个结构体代表链表结点 struct node{ int data; //结点中存放数据 struct node *next; //指向下一个结点的指针 }; //为求方便给结点类型一个新的类型名Lnode typedef struct node Lnode; int main(){ //定义三个指针 1.head:头指针;2.P:每次通过该指针获取新的内存空间; //3.P1:作为记忆连接结点使用; Lnode *head, *p1, *p; //获取头结点,此时三个指针指向同一片内存空间 head = (Lnode*)malloc(sizeof(Lnode)); p = head; p1 = head; //输入整数,存到头结点data中 scanf("%d", &p->data); //设定当数据域data=0即用户输入0时退出循环,链表建立结束 while(p->data != 0){ //获取新的内存空间 p = (Lnode*)malloc(sizeof(Lnode)); //连接结点 p1->next = p; //用p1跟踪当前最后一个结点 p1 = p; //存放结点数据 scanf("%d", &p->data); }; //让尾结点指针变量指向NULL p->next = NULL; //让p1指向头结点,用于遍历链表 p1 = head; //遍历链表 while(p1->next != NULL){ printf("%d\n", p1->data); p1 = p1->next; }; return 0; }
编译运行代码,输入1,2,3,4,5,0; 运行结果如下: