数构线性链表ADT
来源:互联网 发布:cs1.6弹道优化 编辑:程序博客网 时间:2024/06/06 07:37
typedef struct LNode { // 结点类型
typedef struct { // 链表类型
Status MakeNode(Link &p, ElemType e);
Status InitList(LinkList &L);
ElemType data;
struct LNode *next;}*Link, *Position;
typedef struct { // 链表类型
Link head, tail; // 分别指向线性链表中的头结点和最后一个结点
int len; // 指示线性链表中数据元素的个数} LinkList;
Status MakeNode(Link &p, ElemType e);
// 分配由p指向的值为e的结点,并返回OK;若分配失败,则返回ERRORvoid FreeNode(Link &p);
// 释放p所指结点
Status InitList(LinkList &L);
// 构造一个空的线性链表LStatus DestroyList(LinkList &L);
// 销毁线性链表L,L不再存在Status ClearList(LinkList &L);
// 将线性链表L重置为空表,并释放原链表的结点空间Status InsFirst(Link h, Link s);
// 已知h指向线性链表的头结点,将s所指结点插入在第一个结点之前Status DelFirst(Link h, Link &q);
// 已知h指向线性链表的头结点,删除链表中的第一个结点并以q返回Status Append(LinkList &L, Link s);
// 将指针s所指(彼此以指针相链)的一串结点链接在线性链表L的最后一个结点之后,
// 并改变链表L的尾指针指向新的尾结点Status Remove(LinkList &L, Link &q);
// 删除线性链表L中的尾结点并以q返回,改变链表L的尾指针指向新的尾结点Status InsBefore(LinkList &L, Link &p, Link s);
// 已知p指向线性链表L中的一个结点,将s所指结点插入在p所指结点之前
// 并修改指针p指向新插入的结点Status InsAfter(LinkList &L, Link &p, Link s);
// 已知p指向线性链表L中的一个结点,将s所指结点插入在p所指结点之后
// 并修改指针p指向新插入的结点Status SetCurElem(Link &p, ElemType e);
// 已知p指向线性链表中的一个结点,用e更新p所指结点中数据元素的值ElemType GetCurElem(Link p);
// 已知p指向线性链表中的一个结点,返回p所指结点中数据元素的值Status ListEmpty(LinkList L);
// 若线性链表L为空表,则返回TRUE,否则返回FALSEint ListLength(LinkList L);
//返回线性链表L中的元素个数Position GetHead(LinkList L);
// 返回线性链表L中头结点的位置Position GetLast(LinkList L);
// 返回线性链表L中最后一个结点的位置Position PriorPos(LinkList L, Link p);
//已知p指向线性链表L中的一个节点,返回p所指结点的直接前驱的位置,
// 若无前驱,则返回NULLPosition NextPos(LinkList L, Link p);
//已知p指向线性链表L中的一个节点,返回p所指结点的直接后继的位置,
// 若无后继,则返回NULLStatus LocatePos(LinkList L, int i, Link &p);
// 返回p指示线性链表L中第i个结点的位置并返回OK,i值不合法时返回ERRORPosition LocateElem(LinkList L, ElemType e, Status(*compare)(ElemType, ElemType));
//返回线性链表L中第1个与e满足函数compare()判定关系的元素的位置
// 若不存在这样的元素,则返回NULLStatus ListTraverse(LinkList L, Status(*visit)());
// 依次对L的每个元素调用函数visit().一旦visit()失败,则操作失败
0 0
- 数构线性链表ADT
- 数据结构线性表的ADT
- 数据结构线性表篇之单向链表(ADT)
- 数据结构 -->线性表的链式实现 ADT
- C_线性表(ADT)-双向循环链表的表示和实现
- C_线性表(ADT)-单向循环链表的表示和实现
- 线性表的ADT定义(学生信息表)
- 数据结构线性表篇之顺序表(ADT)
- C_线性表(ADT)-顺序表的表示和实现
- 1.3.3线性表的链式存储结构adt
- C_线性表(ADT)-串类型的定义和实现
- [数结上机]线性表
- adt之链表
- ADT- 双向链表
- 删数问题(指针变量与线性链表)
- Leetcode 线性表 数 Add Two Numbers
- 表ADT
- 表ADT
- android 导包 导入jar包,打包jar包,打包成library。 KanKanStyle
- rman restore:在备份中恢复丢失的文件
- NSIS隐藏窗口标题栏自带的按钮(最大化,最小化,关闭X)
- UML类关系:依赖,关联,聚合和组合
- 迭代加深搜索——PQJ2286
- 数构线性链表ADT
- ygfmobileORACLE中用rownum分页并排序的SQL语句
- UVA10765-Doves and bombs(BCC)
- clang:error: no input files. cocos2d-x 编译错误
- 进程与线程,TCP与UDP,虚函数面试题
- 【自考】数据结构导论《逻辑结构AND物理结构》
- Android SwipeRefreshLayout
- 最大子段和
- php Laravel框架学习(二) 之 Eloquent 基础