数据结构
链表
单链表,双向链表
堆栈
操作名称统一是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?