数据结构常用操作笔记

1.线性表

对千非空的线性表或线性结构, 其特点是:
(1) 存在唯的一个被称作 的数据元素;
(2)存在唯个被称作 最后一个的数据元素;
(3)除第个之外, 结构中的每个数据元素均只有一个前驱;
(4)除最后个之外,结构中的每个数据元素均只有个后继。

InitList(&L)
操作结果:构造一个空的线性表L。
DestroyList(&L)
初始条件:线性表L已存在。
操作结果:销毁线性表L。
ClearList(&L)
初始条件:线性表L已存在。
操作结果:将L重置为空表。
ListEmpty(L)
初始条件:线性表L已存在。
操作结果: 若L为空表, 则返回true, 否则返回false。
ListLength(L)
初始条件:线性表L已存在。
操作结果:返回L中数据元素个数。
GetElem(L,i,&e)
初始条件:线性表L巳存在, 且1:,s;i:os;ListLength(L)。
操作结果:用e返回L中第1个数据元素的值。
LocateElem(L,e)
初始条件:线性表L已存在。
操作结果:返回L中第1个 值与e相同的元素在 L中的位置 。若这样的数据元素不存在 , 则返回值为0。
PriorElem(r,,cur_e,&pre_e)
初始条件:线性表L已存在。
操作结果:若cur_e是L的数据元素,且不是第一个,则用pre_e返回其前驱,否则操作失败 ,pre_e无定义。
NextElem(L,cur_e,&next_e)
初始条件:线性表L已存在。
操作结果:若cur_e是L的数据元素,且不是最后一个,则用next_e返回其后继,否则操作失败,next_e无定义。
Listinsert(&L,i,e)
初始条件:线性表L已存在,且1:,s;i:os;ListLength(L)+l。
操作结果:在 L中第1个位置之前插入新的数据元素 e, L的长度加1。
ListDelete(&L,i)
初始条件:线性表L已存在且非空 ,且l:os;i:os;ListLength(L)。
操作结果:删除L的第1个数据元素,L的长度减1。
TraverseList(L)
初始条件:线性表L已存在。
操作结果:对线性表L进行遍历,在遍历过程中对 L的每个结点访问一次。


2.栈(先进后出)

基本操作:
InitStack(&S)
操作结果:构造一个空栈s。
DestroyStack(&S)
初始条件:栈s巳存在。
操作结果:栈S被销毁。
ClearStack(&S)
初始条件:栈S已存在。
操作结果:将S清为空栈。
StackEmpty(S)
初始条件:栈S巳存在。
操作结果:若栈 s 为空栈, 则返回 true, 否则返回 false
StackLength(S)
初始条件:栈S已存在。
操作结果:返回s的元素个数, 即栈的长度。
GetTop(S)
初始条件:栈S已存在且非空。
操作结果:返回s的栈顶元素, 不修改栈顶指针。
Push(&S,e)
初始条件:栈S已存在。
操作结果:插入元素e为新的栈顶元素。
Pop(&S,&e)
初始条件:栈s已存在且非空。
操作结果:删除S的栈顶元素,并用e返回其值。
StackTraverse(S)
初始条件:栈S已存在且非空。
操作结果:从栈底到栈顶依次对S的每个数据元素进行访问
3.队列(先进先出)

基本操作:
InitQueue(&Q)
操作结果:构造一个空队列Q。
Des t royQueue(&Q)
初始条件:队列Q已存在。
操作结果:队列Q被销毁, 不再存在。
ClearQueue(&Q)
初始条件:队列Q巳存在。
操作结果:将Q清为空队列。
QueueEmpty (Q)
初始条件:队列Q已存在。
操作结果:若Q为空队列,则返回true, 否则返回false。
QueueLength(Q)
初始条件:队列Q已存在。
操作结果:返回Q的元素个数,即队列的长度。
GetHead(Q}
初始条件:Q为非空队列。
操作结果:返回Q的队头元素。
EnQueue(&Q,e}
初始条件:队列Q已存在。
操作结果:插入元素e为Q的新的队尾元素。
DeQueue(&Q,&e)
初始条件:Q为非空队列。
操作结果:删除Q的队头元素,并用e 返回其值。
QueueTr aver se(Q)
初始条件:Q巳存在且非空。
操作结果:从队头到队尾,依次对Q的每个数据元素访问

 

posted @ 2021-12-26 14:57  无情的小肥羊  阅读(102)  评论(0)    收藏  举报