美文网首页IOS个人开发面试@IT·互联网
数据结构之线性表(顺序和链式)、栈和队列、串总结

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

作者: 橙小汁 | 来源:发表于2016-08-12 09:40 被阅读390次

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

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  &

相关文章

  • 栈和队列

    栈和队列 栈由于是一种特殊的线性表,它也分为顺序存储和链式存储。 顺序栈。类比数组,数组的尾巴模拟栈顶 链栈。 ...

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

    一、数据结构之顺序表总结 1、定长顺序表 头文件sqlist.h 实现头文件函数的文件:sqlist.cpp ex...

  • 数据结构的各种代码

    第 02 章 线性表 顺序存储结构 链式存储结构 第 03 章 栈与队列 顺序栈 链栈 两栈共享空间 循环队列 链...

  • 数据结构--线性表

    线性表【队列、栈】(包括顺序存储结构和链式存储结构【链表】) 线性表:零个或多个数据元素的有限序列。线性表的顺序存...

  • 数据结构与算法之数组与链表

    线性表包括数组,链表(单链表,双向链表,循环链表,双向循环链表,静态链表),栈(顺序栈,链式栈),队列(普通队列,...

  • 数据结构与算法之栈与队列

    线性表包括数组,链表(单链表,双向链表,循环链表,双向循环链表,静态链表),栈(顺序栈,链式栈),队列(普通队列,...

  • 数据结构(线性结构 栈与队列)

    栈与队列都是特殊的线性表,它们也是线性结构。用户可以采用顺序存储结构和链式存储结构两种方式来存储。栈和队列结构是各...

  • 栈和队列

    栈和队列 本质上是稍加限制的线性表 栈和队列定义 栈顺序栈定义 链栈结点定义 队列顺序队列 链队列链队类型定义 链...

  • 栈和队列—什么是栈

    栈和队列是两种重要的数据结构 从数据结构角度看,栈和队列也是线性表,其特殊性在于栈和队列的基本操作是线性表操作的子...

  • 栈和队列—什么是队列

    栈和队列是两种重要的数据结构 从数据结构角度看,栈和队列也是线性表,其特殊性在于栈和队列的基本操作是线性表操作的子...

网友评论

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

    本文链接:https://www.haomeiwen.com/subject/ncussttx.html