算法的乐趣 · 第七节
《算法的乐趣》第七节
本节首先承接前文,说明将动作存入函数表可省去循环体代码,新增动作只需加条目;并指出分支跳转虽是基础结构,但用一致性处理逻辑(如函数表、环形队列取模)避免分支,算法结构更好。
本节首先承接前文,说明将动作存入函数表可省去循环体代码,新增动作只需加条目;并指出分支跳转虽是基础结构,但用一致性处理逻辑(如函数表、环形队列取模)避免分支,算法结构更好。
随后进入“算法实现与数据结构”:数据结构包含数据集合与逻辑关系两层含义,是算法设计的基础;常见逻辑结构有线性、关联、树形、图形四种。
接着介绍四种基本线性表:数组用下标直接访问、开销小,但插入删除需移动元素,可利用下标特性简化算法(如统计数字出现次数),还有可变长数组与多维数组;链表由数据域和指针域组成,插入删除只改指针、效率高但查找慢,可构成环形链表,使用“表头节点(哑节点/哨兵节点)”能统一处理空表与非空表、实现操作一致性;栈只能在一端进出、后进先出,可将递归转为非递归、保存搜索状态,用于括号匹配等;队列一端入一端出、先进先出,有环形队列、双端队列、优先级队列等形式,广泛用于广度优先搜索、线程调度、打印缓冲与网络报文管理。
最后引出下一节:复杂数据结构中元素间存在父子、邻接等关系,插入删除还需维护这些关系。