单链表解析Ⅲ
来源:互联网 发布:centos7网络配置 编辑:程序博客网 时间:2024/06/14 12:24
定义:
typedef char ListData;typedef struct node{ListData data;struct node * link;}ListNode;typedef ListNode * LinkList;LinkList first; //定义头指针LinkList last; //定义尾指针
1.清空链表
//删除除头结点外所有节点void EmptyList(LinkList first) { ListNode * q; while(first->link!=NULL) //获取头结点后继节点,逐个删除并释放 { q = first->link; //将q指针指向头结点的后继 first->link = q->link; //将头结点的指针域指向头结点后继的后继 free(q); //释放q指针指向的内存空间 }}
2.计算单链表长度
int Length(LinkList first){ ListNode * p = first->link; //初始化遍历指针指向头结点后继 int count = 0; while(p!=NULL) { p = p->link; count++; //遍历链表 } return count;}
3.按值查找
ListNode * Find(LinkList first,ListData value){ ListNode * p = first->link; //遍历链表,直到找到相应的值或者链表末尾 while(p!=NULL&&p->date!=value) { p = p->link; } return p;}
4.按序号查找(定位)
//返回第i个节点的地址ListNode * Locate(LinkList first,int i){ if(i<0) return NULL; //查找结点小于0 ListNode * p = first->link; int k = 0; //计数 while(p!=NULL&&k<i) //顺序查找直到查找到第i-1个节点或者链表末尾 { p = p->link; //将p指向遍历的节点的后继 k++; } if(k==i){ return p; }else{ return NULL;}
阅读全文
0 0
- 单链表解析Ⅲ
- 单链表解析Ⅰ
- 单链表解析Ⅱ
- 约瑟夫问题 循环单链表解法
- linux链表解析
- 集合链表解析
- 十字链表解析
- 猫吃老鼠问题的单链表解法.
- 使用循环单链表解决约瑟夫环问题
- 用循环单链表解决约瑟夫问题
- 使用循环单链表解决约瑟夫环问题
- 3.10 约瑟夫环问题--循环单链表解决
- c++ 数据结构 用循环单链表解决约瑟夫问题
- 数据结构(三):循环单链表解决约瑟夫问题
- Linux内核中的双循环链表解析
- 稀疏矩阵的正交链表解析
- linux 内核链表解析1
- linux 内核链表解析2
- JS数组去重
- Qt编写的软件在线升级系统(客户端)
- 001 Python前端之HTML基础
- 使用Cython来保护Python代码库
- 过滤器与拦截器的区别
- 单链表解析Ⅲ
- HDU 2546 饭卡
- 加入信号量的简易卖票系统
- Counting Divisors HDU
- x264中的汇编:cpu-a.asm——003
- xsj的Java学习笔记——面向对象三大特征简单小结
- hadoop安装需要配置的文件
- Fibonacci(矩阵快速幂)
- SCTP