数据结构------链表创建与输出
2012-10-02 16:38
253 查看
一下是自己学习并编写的链表的创建和输出过程,简单易懂。
一定要记住链表创建的步骤,理解每一步
#include <stdio.h> #include <stdlib.h> #include <malloc.h> struct ListNode { int data; struct ListNode *next; }; typedef struct ListNode list; list *createList(int b) { int i,a; list *head=NULL,*curNode=NULL,*tailNode=NULL; //此处除head,我们创建两个指针curNode和tailNode //curNode总是指向当前创建的节点,tailNode总是指向链表的结尾 for(i=0;i<b;i++) { curNode=(list *)malloc(sizeof(struct ListNode)); //申请内存空间并判断是否成功 if(NULL==curNode) { printf("Allocate memry failed......"); break; } printf("请输入链表中的第%d个数:",i); //输入链表中的数并把值赋给刚创建的curNode节点 scanf("%d",&a); curNode->data=a; if(head==NULL) //这个循环只执行一次,目的就是为了定位头节点,以便使头节点一直指向第一个节点。 { head=curNode; tailNode=curNode; } else { tailNode->next=curNode; //移动节点指针的时候一定要注意移动的先后顺序,比如此处 tailNode=curNode; } } tailNode->next=NULL; return head; } int main(void) { int n; list *newNode=NULL; printf("输入要创建链表的长度:"); scanf("%d",&n); newNode=(list *)malloc(sizeof(struct ListNode)); newNode=createList(n); while(newNode) { printf("%d",newNode->data); newNode=newNode->next; } printf("\n"); free(newNode); //有malloc就一定有free,不用了一定要归还系统 return 0; }
一定要记住链表创建的步骤,理解每一步
相关文章推荐
- 目标:完成数组和链表创建队列,完成其余基本数据结构。
- 数据结构之链表操作,创建,插入,删除,查找。
- 【数据结构】双向链表的创建和读取
- (单向链表)数据结构的创建和功能函数(C语言)
- C语言:创建动态单向链表,创建完成后,输出每一个节点的数据信息。
- 含头结点的C++尾插法创建简单链表并输出
- 数据结构单链表之创建链表(头插法)
- 数据结构 单链表创建 插入 删除
- 学习笔记——C语言实现单链表的基本操作:创建、输出、插入结点、删除结点、逆序链表
- C语言创建单链表,输出单链表的内容。
- 数据结构单链表之创建链表(尾插法)
- 链表的创建,插入,输出,打印
- 【数据结构】C语言实现链表的创建及遍历链表
- c语言数据结构分析1之 链表创建
- 数据结构|创建学生成绩的单链表(实验2.2)
- 数据结构研究--尾插法创建带头结点的单链表
- 数据结构-链表创建,删除,插入,反转,连接
- 单链表创建、输出、逆转、查询
- 数据结构--单链表逆序输出
- 链表创建 然后逆序 然后输出 上机测试题