一、数据结构之顺序表总结
1、定长顺序表
定长顺序表
头文件sqlist.h
sqlist.h
实现头文件函数的文件:sqlist.cpp
初始化函数
插入函数
寻找删除函数
其它函数
example---->实例详解:比较两个顺序表的大小。若两个表均为空表或者所有元素均相同,就返回0;若不同,当在两个顺序表相同长度内发现不同元素就返回不同元素的差值,当在两个顺序表相同长度内未发现不同元素就返回表长度的差值;
example
2、不定长顺序表
头文件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 &










网友评论