线性表(总结3)
来源:互联网 发布:windows cortana如何 编辑:程序博客网 时间:2024/04/30 06:34
3、循环链表
循环链表的特点是表中最后一个结点的指针域指向头结点,从表中任一结点出发均可找到表中其他结点。判断循环链表是否为空,可测试p是否等于头指针。
4、双向链表
在双向链表的结点中有两个指针域,其一指向直接后继,另一指向直接前驱。在双向链表中,NextElem和PriorElem的执行时间为
O(1)。
//--------------------线性表的双向链表存储结构----------------------
typedef int ElemType;
typedef struct DuLNode{
ElemType data;
struct DuLNode *prior;
struct DuLNode *next;
}DuLNode, *DuLinkList;
//--------------------带头结点的双链循环性表L中第i个位置之前插入元素e----------------------
//--------------------i的合法值为1 <= i <= 表长+1----------------------
Status ListInsert_DuL(DuLinkList &L, int i, ElemType e){
DuLNode *s, *p;
if (!(p = GetElemP_DuL(L, i))) //在L中确定第i个元素的位置指针p
return ERROR;
if (!(s = (DuLinkList)malloc(sizeof (DuLNode))))
return ERROR;
s ->data = e;
s ->prior = p ->prior;
p ->prior ->next = s;
s ->next = p;
p ->prior = s;
return OK;
}
//--------------------删除带头结点的双链循环性表L中第i个元素,i的合法值为1<= i <= 表长----------------------
Status ListDelete_DuL(DuLinkList &L, int i, ElemType &e){
DuLNode *p;
if (!(p = GetElemP_DuL(L, i))) //在L中确定第i个元素的位置指针p
return ERROR;
e = p ->data;
p ->prior ->next = p ->next;
p ->next ->prior = p ->prior;
free (p);
return OK;
}
http://download.csdn.net/source/2181836
- 线性表(总结3)
- 线性表(总结1)
- 线性表(总结2)
- 数据结构总结(2.11线性表分类)
- 数据结构学习总结(二) 线性表
- 线性表总结
- 线性表总结
- 线性表总结
- 数据结构--线性表总结
- 线性表知识总结
- 线性表知识总结
- 线性表总结
- 线性表总结
- 线性表总结
- 简单总结线性表
- 线性表学习总结
- 线性表基础知识总结
- 线性表基础知识总结
- 解析JS的脚本解析引擎
- 第一章 导言
- MySQL莫名的MySQL server has gone away
- NDS《凉宫春日的直列》的一些破解信息
- Eclipse中常用的快捷键及Eclipse启动参数大全
- 线性表(总结3)
- indent设置
- 2PC,3PC和Paxos分布式一致性算法
- 虚拟化技术改变传统文件备份战略
- NFS文档(FOR LINUX)
- 用MFC打开一个文件
- C#索引器
- NS2安装笔记 - Ubuntu9.10
- 再看一个内存对齐的例子