第五章 数据结构与算法
124、算法是解决特点问题的方法。描述算法可采用方案、传统流程图、N-S图和PAD图等。
125、算法的特性:有穷性、确定性、可行性、输入和输出。
126、算法和程序的区别是程序未必满足有穷性。
127、算法可以用流程图、高级语言、伪代码、决策表描述。
128、算法的评价目标:正确性、可读性、健壮性及高效率低存储量。
129、算法的时间复杂度T(n)=O(f(n)),空间复杂度=S(n)=O(f(n))。
130、线性表是n个元素的有限序列。含有大量记录的线性表为文件。
131、线性表的存储结构包括:顺序、链式(单向链表、循环链表和双向链表)和散列存储等。
132、线性表中第i个元素的存储位置=a1+(i-1)*K
133、栈是限定仅在表尾进行插入和删除操作的线性表。(进栈和出栈)
134、栈有顺序栈和链式栈两种。
135、表达式有前缀表达式(又叫波兰式,规则是运算符后紧跟操作数)和后缀表达式(又叫逆波兰式,规则是运算符紧跟操作数后)两种。如x+a*(y-b)-z/f,其前辍、后辍分别是-+x*a-yb/zf和xayb-*+zf/-。
136、队列是一端插入一端删除的线性表也叫先进先出表(FIFO),可分为链队列和循环队列,主要采取顺序存储结构。
137、一般采用顺序存储结构表示数组。多维数组的顺序存储有以列序为主序和以行序为主序。
138、数组元素的地址计算公式:
(1)按行优先顺序存储的二维数组Amn地址计算公式
LOC(aij)=LOC(a11)+[(i-1)×n+j-1]×d
其中:①.LOC(a11)是开始结点的存放地址(即基地址)②.d为每个元素所占的存储单元数③.由地址计算公式可得,数组中任一元素可通过地址公式在相同时间内存取。即顺序存储的数组是随机存取结构。
(2)按列优先顺序存储的二维数组Amn地址计算公式
LOC(aij)=LOC(a11)+[(j-1)×m+i-1]×d
(3)按行优先顺序存储的三维数组Amnp地址计算公式
LOC(aijk)=LOC(a111)+[(i-1)×n×p+(j-1)×p+k-1]×d
139、广义表采用链接存储方式。
140、树的表示方法有:树型结构、括号表示法、凹入表示法和嵌套集合表示形式。
141、二叉树是指每个结点最多只有两棵子树,且有左右之分。
142、树的遍历方式有前序遍历(先访问根结点,再访问根的子结点)、后序遍历(先访问子树,再访问根结点)、层次遍历(按第一层、第二层…的顺序访问)
143、遍历图的方法有:深度优先遍历和广度优先遍历。它们对无向图和有向图均适用。