[数据结构】【c语言】链表的创建和遍历
第一次写代码的博客,一个刚刚接触的新手,来这里主要是为了记录自己,方便自己以后浏览,也欢迎大家指正。先来个简单的,动态链表的创建和遍历。
#include<stdio.h> #include<stdlib.h> #include<malloc.h> //定义链表的节点 typedef struct LNode { int data; struct LNode *next; } *LinkList; //创建链表函数 LinkList CreateList() { LinkList LTail, LHead, p; int i, length,input; LHead = (LinkList)malloc(sizeof(LNode)); //创建一个表头节点 if (!LHead) exit(0); //判断表头是否创建成功 LTail = LHead; //定义一个表尾 LTail->next = NULL; //表尾的指针赋予NULL printf("请输入你需要的节点数:\n"); scanf_s("%d", &length); for (i = 0; i < length; i++) { printf("请输入第%d个节点的数据", i + 1); scanf_s("%d", &input); p = (LinkList)malloc(sizeof(LNode)); //创建一个新的节点 if (!p) exit(0); p->data = input; //将输入的input的值赋给新的节点 p->next = NULL; //新的节点将要为链表的表尾将其指针赋NULL. LTail->next = p; //将表尾与新的节点连接起来 LTail = p; //将新的节点赋给LTail,成为新的表尾 } return LHead; //返回表头 } //遍历链表函数 void TravelList(LinkList Head) { LinkList p = Head->next; //从链表头节点的下一个节点开始遍历 while (p != NULL) //当链表为空时,停止遍历 { printf("%d\t", p->data); p = p->next; //向后移动一个节点 } } int main() { LinkList head; head = CreateList(); TravelList(head); return 0; }