自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 数据结构学习笔记——树和森林

(3)森林有n个非叶结点,转换为二叉树后会出现n个叶子(每个非叶所在子树转换后都。会有一个叶子),加上在最后一棵树的根结点,共有n+1个无右子树的结点;(1)森林转二叉树后,由二叉树判断树的个数:只要数右上方的结点数;(4)森林叶子个数等于转为二叉树后无左孩子的结点个数;(5)森林树的个数等于结点数减边数(连通分支数)。(2)依次遍历根结点的每棵子树(先根后子树)。(2)先序遍历第一棵树根的子树森林;(1)中序遍历第一棵树根的子树森林;(1)依次遍历根结点的每棵子树;(3)同样方法遍历剩下的森林。

2024-07-27 12:29:09 383

原创 数据结构学习笔记——线索二叉树

(7)无法通过线索直接找到的:先序前驱,后序后继(需要知道双亲结点,而线索二叉树没有存放双亲的指针)。(1)n个结点二叉树有n + 1个空指针(每个结点2个指针,一度消耗一个指针,有n - 1度,(2)若无左子树,则 lchild 指向前驱结点;(4)增加两个标志位 ltag 和 rtag ,为0表示由左(右)子树;(5)二叉树的线索化:将二叉链表的空指针改为指向前驱或后驱的线索;则空指针数为2n - ( n - 1 ) = n + 1;(6)线索二叉树是加上线索后的链表结构,是一种物理结构;

2024-07-20 11:15:47 202

原创 数据结构学习笔记——二叉树遍历

/先访问(当前子树的根节点)}else { //当前结点为空,则应该访问栈顶元素(当前的父结点),再遍历父结点的右子树。if(p) { // 一路向左遍历。// 栈顶结点为当前结点的父结点。stk.empty() || p){ //p空且栈空时退出。stk.empty() || p){ // p空且栈空时退出。

2024-07-19 15:04:44 415 1

原创 数据结构学习笔记——树

(6)n个结点的二叉树有n + 1个空指针,n个结点,总度数为n - 1,总指针数为2n,则空指针数为2n - ( n-1 ) = n。(5)完全二叉树有n个结点,则最后一个有孩子的结点下标为[ n / 2 ],其余全是叶子;(1)二叉树n0 = n2 + 1,第i层最多2i-1个结点;(2)树的结点数等于所有结点的度数和 + 1,树根为第1层;(5)度为m的树第i层最多有m ^ i - 1个结点。(4)度为m的树( m > 1 )表示树高 > 1;(2)第二层的二叉树最多有2 ^ i-2 个结点;

2024-07-18 15:00:19 395 1

原创 数据结构学习笔记——队列

(3)增设tag成员:tag == 0时:若因删除导致 Q.front == Q.rear,为队空;(1)牺牲一个单元:队头指针在队尾指针的下一个位置作为队满的标志,即(Q.rear+1) % MaxSize == Q.front;(2)增加元素个数的数据成员:Q.size == MaxSize 时队满,此时 Q.front == Q.rear;(1)初始化(队空条件):Q.front == Q.rear == 0;(2)初始化(队空条件):Q.front == Q.rear == 0;

2024-07-17 13:03:57 313 1

原创 数据结构学习笔记——栈

/修改top指针(指向下一个结点)卡特兰(Catalan)数:n个不同元素进栈,出栈不同排列的个数为1/(n+1)C^n 2n。//保持top指向栈顶。//先修改要插入的结点指针。(3)top是一个指针(不是结点),指向栈顶(链表第一个结点)(1)栈满条件:两个栈顶指针相邻(top2-top1==1)(2)所有操作在表头进行,即next指向栈底方向。(2)好处:节省存储空间,降低发生上溢的可能。1.向栈顶指针为top插入结点X。

2024-07-16 19:07:09 361 1

原创 数据结构学习笔记——线性表

已知一个结点,只能对后继结点进行操作(插入/删除)——单链表不能删除当前结点!(2)循环链表尾指针是头指针的前驱,对表头和表尾操作都是O(1).(3)循环链表尾指针指向的是头结点而不是第一个元素的结点!(1)顺序表插入删除要移动元素!(1)需要知道插入位置的前驱结点(从表头顺序遍历)(1)要知道删除结点的前驱结点(从表头顺序遍历)(2)先修改要插入的结点(新结点)的指针。(2)插入:先修改新结点,再修改前驱结点。(2)只需要修改前驱结点的指针。(3)删除:只需修改前驱结点。(3)再修改前驱结点的指针。

2024-07-15 12:35:37 429 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除