数据结构之线性表(顺序和链式)、栈和队列、串总结

一、数据结构之顺序表总结

1、定长顺序表

数据结构之线性表(顺序和链式)、栈和队列、串总结_第1张图片
定长顺序表

头文件sqlist.h

数据结构之线性表(顺序和链式)、栈和队列、串总结_第2张图片
sqlist.h

实现头文件函数的文件:sqlist.cpp

初始化函数
数据结构之线性表(顺序和链式)、栈和队列、串总结_第3张图片
插入函数
数据结构之线性表(顺序和链式)、栈和队列、串总结_第4张图片
寻找删除函数
数据结构之线性表(顺序和链式)、栈和队列、串总结_第5张图片
其它函数

example---->实例详解:比较两个顺序表的大小。若两个表均为空表或者所有元素均相同,就返回0;若不同,当在两个顺序表相同长度内发现不同元素就返回不同元素的差值,当在两个顺序表相同长度内未发现不同元素就返回表长度的差值;

数据结构之线性表(顺序和链式)、栈和队列、串总结_第6张图片
example

2、不定长顺序表

头文件dsqlist.h:

数据结构之线性表(顺序和链式)、栈和队列、串总结_第7张图片
dsqlist.h

实现头文件函数的文件:dsqlist.cpp

数据结构之线性表(顺序和链式)、栈和队列、串总结_第8张图片
初始化函数
数据结构之线性表(顺序和链式)、栈和队列、串总结_第9张图片
插入函数
摧毁函数




二、数据结构之静态链表总结

数据结构之线性表(顺序和链式)、栈和队列、串总结_第10张图片
静态链表

1、定长静态链表

0号下标为有效链的头结点,1号下标为空闲链的头结点,两条链都是循环链表。

头文件slinklist.h

数据结构之线性表(顺序和链式)、栈和队列、串总结_第11张图片
slinklist.h

实现头文件函数的文件slinklist.cpp

数据结构之线性表(顺序和链式)、栈和队列、串总结_第12张图片
初始化函数
数据结构之线性表(顺序和链式)、栈和队列、串总结_第13张图片
头插与尾插
数据结构之线性表(顺序和链式)、栈和队列、串总结_第14张图片
寻找结点以及判空
数据结构之线性表(顺序和链式)、栈和队列、串总结_第15张图片
从有效链中删除一个结点
数据结构之线性表(顺序和链式)、栈和队列、串总结_第16张图片
摧毁、打印




三、数据结构之链表总结

1、单链表

数据结构之线性表(顺序和链式)、栈和队列、串总结_第17张图片
单链表

头文件:list.h

数据结构之线性表(顺序和链式)、栈和队列、串总结_第18张图片
list.h

实现头文件函数的文件:list.cpp

数据结构之线性表(顺序和链式)、栈和队列、串总结_第19张图片
初始化和购买节点
数据结构之线性表(顺序和链式)、栈和队列、串总结_第20张图片
头插尾插
数据结构之线性表(顺序和链式)、栈和队列、串总结_第21张图片
插到链表中给定位置的函数
数据结构之线性表(顺序和链式)、栈和队列、串总结_第22张图片
寻找值和前驱的函数
数据结构之线性表(顺序和链式)、栈和队列、串总结_第23张图片
删除 摧毁
数据结构之线性表(顺序和链式)、栈和队列、串总结_第24张图片
链表逆置
数据结构之线性表(顺序和链式)、栈和队列、串总结_第25张图片
打印链表、得到链表长度、判空

2、循环链表

数据结构之线性表(顺序和链式)、栈和队列、串总结_第26张图片
循环链表

头文件clist.h(函数同单链表),结点定义如下:

clist.h(函数省略,同单链表)

实现头文件函数的文件clist.cpp:

数据结构之线性表(顺序和链式)、栈和队列、串总结_第27张图片
初始化和购买节点
数据结构之线性表(顺序和链式)、栈和队列、串总结_第28张图片
头插尾插

2、带头双向非循环链表

数据结构之线性表(顺序和链式)、栈和队列、串总结_第29张图片
带头双向非循环

头文件dlist.h(函数同单链表),结点定义如下:

数据结构之线性表(顺序和链式)、栈和队列、串总结_第30张图片
dlist.h

实现头文件函数的文件dlist.cpp:

数据结构之线性表(顺序和链式)、栈和队列、串总结_第31张图片
初始化和购买节点
数据结构之线性表(顺序和链式)、栈和队列、串总结_第32张图片
头插和尾插
数据结构之线性表(顺序和链式)、栈和队列、串总结_第33张图片
查找删除
数据结构之线性表(顺序和链式)、栈和队列、串总结_第34张图片
摧毁

4、链表利用实例

Question:利用带头结点的单链表保存一元多项式,按指数升序排列;

数据结构之线性表(顺序和链式)、栈和队列、串总结_第35张图片
带头结点的单链表保存一元多项式

头文件poly.h:

数据结构之线性表(顺序和链式)、栈和队列、串总结_第36张图片
poly.h

实现头文件函数的文件:poly.cpp

初始化函数
数据结构之线性表(顺序和链式)、栈和队列、串总结_第37张图片
寻找前驱  购买节点
数据结构之线性表(顺序和链式)、栈和队列、串总结_第38张图片
插入
数据结构之线性表(顺序和链式)、栈和队列、串总结_第39张图片
两个多项式相加、相减,打印多项式

5、不带头结点的单链表的实现

头文件如下:

数据结构之线性表(顺序和链式)、栈和队列、串总结_第40张图片
不带头结点的单链表的头文件

实现头文件函数的文件:

数据结构之线性表(顺序和链式)、栈和队列、串总结_第41张图片
初始化和购买节点
数据结构之线性表(顺序和链式)、栈和队列、串总结_第42张图片
头插尾插
数据结构之线性表(顺序和链式)、栈和队列、串总结_第43张图片
删除结点
数据结构之线性表(顺序和链式)、栈和队列、串总结_第44张图片
查找 得到链表长度
数据结构之线性表(顺序和链式)、栈和队列、串总结_第45张图片
打印 摧毁



四、数据结构之栈总结

栈的特点是先进后出

1、定长顺序栈

头文件stack.h

数据结构之线性表(顺序和链式)、栈和队列、串总结_第46张图片
stack.h

实现头文件函数的文件stack.cpp

数据结构之线性表(顺序和链式)、栈和队列、串总结_第47张图片
初始化  判满  插入元素
数据结构之线性表(顺序和链式)、栈和队列、串总结_第48张图片
判空及两个获得

2、链式栈(带头结点的单链表存储,链头端为栈顶)

头文件lstack.h:

数据结构之线性表(顺序和链式)、栈和队列、串总结_第49张图片
lstack.h

实现头文件函数的文件:

数据结构之线性表(顺序和链式)、栈和队列、串总结_第50张图片
初始化、购买节点、插入元素
数据结构之线性表(顺序和链式)、栈和队列、串总结_第51张图片
判空及两个获得
数据结构之线性表(顺序和链式)、栈和队列、串总结_第52张图片
摧毁



五、数据结构之队列总结

队列的特点是先进先出,队列可以分为线性队列和环形队列,由于线性队列入队时间复杂度是O(1),而出队时间复杂度达到了O(n);所以选用了入队和出队都为O(1)的环形队列。

1、定长环形顺序队列

数据结构之线性表(顺序和链式)、栈和队列、串总结_第53张图片
定长环形顺序队列

头文件queue.h:

数据结构之线性表(顺序和链式)、栈和队列、串总结_第54张图片
queue.h

实现头文件函数的文件queue.cpp:

数据结构之线性表(顺序和链式)、栈和队列、串总结_第55张图片
初始化、判满、插入元素
数据结构之线性表(顺序和链式)、栈和队列、串总结_第56张图片
判空、获得元素
数据结构之线性表(顺序和链式)、栈和队列、串总结_第57张图片
摧毁、得到队列大小

2、链式队列

数据结构之线性表(顺序和链式)、栈和队列、串总结_第58张图片
链式队列


头文件lqueue.h:

数据结构之线性表(顺序和链式)、栈和队列、串总结_第59张图片
lqueue.h

实现头文件函数的文件lqueue.cpp:

数据结构之线性表(顺序和链式)、栈和队列、串总结_第60张图片
初始化、购买节点、判空、插入元素
数据结构之线性表(顺序和链式)、栈和队列、串总结_第61张图片
两个获得
数据结构之线性表(顺序和链式)、栈和队列、串总结_第62张图片
摧毁  求大小

3、链式优先级有序队列

入队时间复杂度O(n),出队O(1),即优先级高的先出

数据结构之线性表(顺序和链式)、栈和队列、串总结_第63张图片
链式优先级有序队列

头文件priqueue.h:

数据结构之线性表(顺序和链式)、栈和队列、串总结_第64张图片
priqueue.h

实现头文件函数的文件priqueue.cpp:

数据结构之线性表(顺序和链式)、栈和队列、串总结_第65张图片
初始化、购买结点、寻找前驱、插入元素
数据结构之线性表(顺序和链式)、栈和队列、串总结_第66张图片
判空、两个得到

4、双端队列

输入受限的双端队列:输入只可从一端,输出可以从两端

输出受限的双端队列:输出只可从一端,输入可以从两端




六、数据结构之串总结

1、不定长顺序表串

数据结构之线性表(顺序和链式)、栈和队列、串总结_第67张图片
不定长顺序表串

头文件str.h:

数据结构之线性表(顺序和链式)、栈和队列、串总结_第68张图片
str.h

实现头文件的函数的文件str.cpp

数据结构之线性表(顺序和链式)、栈和队列、串总结_第69张图片
初始化、拷贝
数据结构之线性表(顺序和链式)、栈和队列、串总结_第70张图片
将t插入ps的pos位置
数据结构之线性表(顺序和链式)、栈和队列、串总结_第71张图片
从s的pos位置开始找出长度为len的子串,存于sub中
数据结构之线性表(顺序和链式)、栈和队列、串总结_第72张图片
在s中的pos位置开始查找  是否存在子串sub
数据结构之线性表(顺序和链式)、栈和队列、串总结_第73张图片
删除
数据结构之线性表(顺序和链式)、栈和队列、串总结_第74张图片
替换
数据结构之线性表(顺序和链式)、栈和队列、串总结_第75张图片
得到长度 清除 摧毁 打印

                                                                                  --------------------end  &

你可能感兴趣的:(数据结构之线性表(顺序和链式)、栈和队列、串总结)