数据结构

链表

单链表,双向链表

堆栈

操作名称统一是pop, push, top

接口定义:传统是pop的同时返回顶部値,无top;非传统则是pop不返回值,top返回顶部値,push压栈

实现方式:静态数组、动态数组、链表

队列

没有统一的操作名称,一般叫做insert, delete

接口定义:传统是delete的同时返回値

实现方式:静态循环数组(变量,或者让数组一直保有一个不使用的占位値)、动态数组、链表

二叉树

每个节点最多拥有两个子节点,

每个节点都比左侧的子节点树上的所有节点都要大;同时比右侧的子节点树上的所有节点都要小

根节点、叶节点

删除

实现二叉树的删除在节点有两个子节点的时候,如果按常规思路会比较麻烦。

此时可以对要删除节点的左子树进行操作,获取其最大子节点,用値替换原来要删除的节点的値,再删除

遍历

前序遍历

先获取节点,然后优先左侧子节点,再右侧子节点

中序、后序、层次遍历

实现

数组形式

节点N的父节点是 (N+1)/2 - 1 ; 左子节点是 2N + 1 ; 右子节点是 2N + 2

Last updated

Was this helpful?