数据结构之线性表(顺序和链式)、栈和队列、串总结
一、数据结构之顺序表总结
1、定长顺序表
定长顺序表头文件sqlist.h
sqlist.h实现头文件函数的文件:sqlist.cpp
初始化函数 插入函数 寻找删除函数 其它函数example---->实例详解:比较两个顺序表的大小。若两个表均为空表或者所有元素均相同,就返回0;若不同,当在两个顺序表相同长度内发现不同元素就返回不同元素的差值,当在两个顺序表相同长度内未发现不同元素就返回表长度的差值;
example2、不定长顺序表
头文件dsqlist.h:
dsqlist.h实现头文件函数的文件:dsqlist.cpp
初始化函数 插入函数 摧毁函数二、数据结构之静态链表总结
静态链表1、定长静态链表
0号下标为有效链的头结点,1号下标为空闲链的头结点,两条链都是循环链表。
头文件slinklist.h
slinklist.h实现头文件函数的文件slinklist.cpp
初始化函数 头插与尾插 寻找结点以及判空 从有效链中删除一个结点 摧毁、打印三、数据结构之链表总结
1、单链表
单链表头文件:list.h
list.h实现头文件函数的文件:list.cpp
初始化和购买节点 头插尾插 插到链表中给定位置的函数 寻找值和前驱的函数 删除 摧毁 链表逆置 打印链表、得到链表长度、判空2、循环链表
循环链表头文件clist.h(函数同单链表),结点定义如下:
clist.h(函数省略,同单链表)实现头文件函数的文件clist.cpp:
初始化和购买节点 头插尾插2、带头双向非循环链表
带头双向非循环头文件dlist.h(函数同单链表),结点定义如下:
dlist.h实现头文件函数的文件dlist.cpp:
初始化和购买节点 头插和尾插 查找删除 摧毁4、链表利用实例
Question:利用带头结点的单链表保存一元多项式,按指数升序排列;
带头结点的单链表保存一元多项式头文件poly.h:
poly.h实现头文件函数的文件:poly.cpp
初始化函数 寻找前驱 购买节点 插入 两个多项式相加、相减,打印多项式5、不带头结点的单链表的实现
头文件如下:
不带头结点的单链表的头文件实现头文件函数的文件:
初始化和购买节点 头插尾插 删除结点 查找 得到链表长度 打印 摧毁四、数据结构之栈总结
栈的特点是先进后出
1、定长顺序栈
头文件stack.h
stack.h实现头文件函数的文件stack.cpp
初始化 判满 插入元素 判空及两个获得2、链式栈(带头结点的单链表存储,链头端为栈顶)
头文件lstack.h:
lstack.h实现头文件函数的文件:
初始化、购买节点、插入元素 判空及两个获得 摧毁五、数据结构之队列总结
队列的特点是先进先出,队列可以分为线性队列和环形队列,由于线性队列入队时间复杂度是O(1),而出队时间复杂度达到了O(n);所以选用了入队和出队都为O(1)的环形队列。
1、定长环形顺序队列
定长环形顺序队列头文件queue.h:
queue.h实现头文件函数的文件queue.cpp:
初始化、判满、插入元素 判空、获得元素 摧毁、得到队列大小2、链式队列
链式队列头文件lqueue.h:
lqueue.h实现头文件函数的文件lqueue.cpp:
初始化、购买节点、判空、插入元素 两个获得 摧毁 求大小3、链式优先级有序队列
入队时间复杂度O(n),出队O(1),即优先级高的先出
链式优先级有序队列头文件priqueue.h:
priqueue.h实现头文件函数的文件priqueue.cpp:
初始化、购买结点、寻找前驱、插入元素 判空、两个得到4、双端队列
输入受限的双端队列:输入只可从一端,输出可以从两端
输出受限的双端队列:输出只可从一端,输入可以从两端
六、数据结构之串总结
1、不定长顺序表串
不定长顺序表串头文件str.h:
str.h实现头文件的函数的文件str.cpp
初始化、拷贝 将t插入ps的pos位置 从s的pos位置开始找出长度为len的子串,存于sub中 在s中的pos位置开始查找 是否存在子串sub 删除 替换 得到长度 清除 摧毁 打印--------------------end &