线性结构编程语言全内容讲解
树图思维导图提供 线性结构思维脑图 在线思维导图免费制作,点击“编辑”按钮,可对 线性结构思维脑图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:72955f56f20ca3865c6974e10053bff6
线性结构思维导图模板大纲
储存结构
顺序表SeqList(顺序储存结构)
在计算器中用一组连续的储存单元,依次储存线性表的各个元素,元素之间的逻辑关系通过储存位置来反映。
适用于做查找这类的静态操作。 缺点:(1)做插入、删除操作时,要移动大量元素(2)对很长的顺序表操作的效力低。 (3)造成储存空间浪费。
链表LinkList(链式储存结构)
单链表
单链表的建立
头插法
尾插法
单链表的插入、删除、求长度。
循环单链表
判空条件:头节点的指针是否指向头指针
对单链表在表头和表尾操作时:不设头指针仅设尾指针,效率更高。
可以从任意结点开始遍历整个链表
静态链表
双向链表
每一个结点都有两个指针域:一个前驱指针域,一个后继指针域。通过付出空间的代价,降低了空间复杂度O(n)-->O(1)
插入、删除操作需要格外小心,对每个结点都需要修改两个指针。
定义:队列是一种只允许在一端进行插入,而在另一端进行删除的线性表
特点:先进先出
顺序队列(SeQueue)
通常用指针front指示对头的位置,用指针rear指向队尾。
假溢出:多次入队列、出队列操作后出现的,尚有储存空间但不能进行入队操作的溢出
循环队列
头尾相连的顺序队列就是循环队列
入队时尾指针加一操作为: sq->rear=(sq->rear+1)%MAXSIZE
出队时头指针加一操作: sq->front=(sq->front+1)%MAXSIZE
队满和队空的判断
设置一个计数器mun
当mun=0时队空;当mun=MAXSIZE时队满。
少用一个元素空间
判空条件:头尾指针相等;判满条件:尾指针加一等于头指针。
链队列(LQueue)
定义:串是有零个或多个任意字符组成的字符序列。
术语
一个串的任意个连续的字符组成的子序列称为该串的子串
称一个字符在串序列中的序号为该字符在串中的位置,子串在主串中的位置是以子串的第一个字符在主串中的位置来表示的。
c语言中,字符的大小是以字符的ASCII码表的大小为准。
储存结构
顺序存储
识别串的长度
用last指针指向最后一个字符
在串尾储存一个不会在串出现的特殊字符作为串的终结符,如‘\0’
设定长串的储存空间:用S[0]存放串的实际长度,串值存放在S[1]~S[MAX]
堆存储结构
S.stradr表示串S在堆中的起始位置, S.length表示串的长度。
链式存储
KMP模式匹配算法
定义:栈是限定在表尾进行插入和删除的线性表。
特点:后进先出
顺序栈(SeqStack)
入栈时,先判满,防止上溢
出栈和读栈顶元素时,先判空,防止下溢。
链栈(LinkStack)
用计数器count来记录链栈中元素的个数。 栈顶元素top,始终指向栈顶元素
栈与递归
两个条件:(1)递归函数表达式(递归体)(2)边界条件(递归出口)
缺点:递归次数多,容易造成栈溢出,包含许多重复计算,效率不高。优点:代码简单,容易理解。
自由主题思维导图模板大纲
自由主题思维导图模板大纲
树图思维导图提供 工业机器人的基本特性 在线思维导图免费制作,点击“编辑”按钮,可对 工业机器人的基本特性 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:26723f573dc1ecf653e069c3dfaeb7c4
树图思维导图提供 1107文家市玉萍思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 1107文家市玉萍思维导图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:ed943ef641f6dc874860eb6095857ed6