单链表的基本操作
来源:互联网 发布:美萍软件怎么样 编辑:程序博客网 时间:2024/06/16 04:11
单链表的基本操作
首先预定义链表结构和结点
typedef struct Node{ ElemType data; struct Node *next;}Node;typedef struct Node *LinkList; /*定义LinkList*/
接下来贴几个基本操作
/*初始条件:顺序线性表L 不存在*//*操作结果:建立一个头结点*/Node *LinkListInit(){ Node *p; p = (Node *)malloc(sizeof(Node)); /*建立一个大小与Node结点大小相同的结点*/ if(!p){ printf("分配空间失败!"); } p->next = NULL; return p;}/*初始条件:顺序链表L 已存在*//*操作结果:在链表L 中填入元素*/Node *LinkListCreat(){ Node *q, *p, *L; p = (Node *)malloc(sizeof(Node)); L = (Node *)malloc(sizeof(Node)); //建立一个头结点 //开始建立新的链表的后续项目 q = (Node *)malloc(sizeof(Node)); printf("请输入该链表的元素(0表示结束):"); scanf("%d", &q->data); int m = q->data; while(m != 0){ // 判断输入是否为0 p->next = q; p = q; q = (Node *)malloc(sizeof(Node)); printf("请输入该链表的元素(0表示结束):"); scanf("%d", &m); q->data = m; }}/*初始条件:顺序线性表L 已存在,1 <= i <= ListLength(L)*//*操作结果:用e 返回L 中第i 个数据元素的值*/Status GetElem(LinkList L, int i, ElemType *e){ int j; LinkList p; /*声明一指针p*/ p = L->next; /*让p 指向链表L的第一个结点*/ j = 1; /*j 为计数器*/ while(p && j < i){ /*p 不为空 且计数器j还没有等于i 时,循环继续*/ p = p->next; /*让p 指向下一个结点*/ j++; } if(!p || j > i){ /*当第i 个结点不存在时*/ return ERROR; } * e = p->data; /*取第i 个结点的数据*/ return Ok;}
阅读全文
0 0
- 单链表的基本操作
- 单链表的基本操作
- 单链表的基本操作
- 单链表的基本操作
- 单链表的基本操作
- 单链表的基本操作
- 单链表的基本操作
- 单链表的基本操作!
- 单链表的基本操作
- 单链表的基本操作
- 单链表的基本操作
- 单链表的基本操作
- 单链表的基本操作
- 单链表的基本操作
- 单链表的基本操作
- 单链表的基本操作
- 单链表的基本操作
- 单链表的基本操作
- java之poi
- Codeforces 873D:构造题
- FLAG_ACTIVITY_CLEAR_TOP会重启Activity的问题解决
- ConfigReader(三十一)—— ReadIGuideTaskConfig
- Emptying the Baltic(类似最短路?)
- 单链表的基本操作
- 爬取一个本地网页
- [分治][线性基]BZOJ 4184: shallot
- linux命令:ps命令
- 一人逾期,痛苦全家人!
- Android studio中常用快捷键
- 南阳理工_65另一种阶乘问题
- Java关键字static、final使用小结
- [容斥 DP] LOJ#6077. 「2017 山东一轮集训 Day7」逆序对