
数据结构
文章平均质量分 82
白玖与歌
这个作者很懒,什么都没留下…
展开
-
排序(三)——选择排序
排序原创 2021-11-26 20:44:58 · 1121 阅读 · 0 评论 -
【王道数据结构】树的编程题(一)
1、编写后序遍历二叉树的非递归算法。算法思想:void PostOrder(BiTree T){ InitStack(S); p = T; r = NULL; while (p || !IsEmoty(S)) { if (p) { push(S, p); p = p->lchild; } else { GetTop(S, p); if (p->rchild && p->rchild != r) p =原创 2021-11-25 21:45:28 · 1779 阅读 · 0 评论 -
图的广度优先遍历
广度优先遍历(BFS) 深度优先遍历(DFS)原创 2021-11-14 13:35:56 · 6581 阅读 · 1 评论 -
图的相关概念和图的存储
基本概念 几种特殊的图 图的存储图的定义由顶点集V和边集E组成的集合。(边集可以为空,顶点集必须非空)【注意】:线性表可以是空表,树可以是空树,但是图一定是非空集。图的相关概念有向图无向图无向边(边)、有向边<弧>简单图:不存在重复边;不存在顶点到自身的边。多重图:图中某两个结点的边数多于1条,或顶点自身连向自身。度:指依附于该顶点的边的条数。(有向图的度是指入度和出度之和。)入度出度路径:两个顶点之间的一条路径,是指顶点序列。回原创 2021-11-13 12:42:48 · 816 阅读 · 0 评论 -
二叉排序树(BST)
二叉排序树的定义 查找操作 插入操作 删除操作 查找效率分析——平均查找长度ASL 平衡二叉树(二叉排序树的引申概念)二叉排序树的定义二叉排序树,又称二叉查找树(BST,Binary Search Tree)一棵二叉树或者是空二叉树,或者是具有如下性质的二叉树:1、左子树上所有结点的关键字均小于根结点的关键字;2、右子树上所有结点的关键字均大于根结点的关键字。左子树与右子树各是一棵二叉排序树。左子树结点值<根结点值<右子树结点值如果对二叉排序树进行中序原创 2021-11-11 14:16:36 · 6327 阅读 · 1 评论 -
树、森林的遍历
树的遍历先根遍历 后根遍历 层序遍历树的先根遍历若树非空,先访问根结点,再依次对每棵子树进行先根遍历。//树的先根遍历void PreOrder(TreeNode *R){ if(R!=NULL){ visit(R); //访问根结点 while(R还有下一个子树T) PreOrder(T); //先根遍历下一棵子树 }}先根遍历序列:ABEKFCGDHIJ用“孩子..原创 2021-11-11 09:03:29 · 3459 阅读 · 0 评论 -
二叉树的遍历算法
遍历:制定一个规则,按照某种次序,把所有结点都访问一遍。层次遍历 基于树的层次特性确定的次序规则 先序遍历 基于树的递归特性确定的次序规则 中序遍历 基于树的递归特性确定的次序规则 后序遍历 基于树的递归特性确定的次序规则 二叉树的递归特性:要么是个空二叉树 要么就是由“根结点+左子树+右子树”组成的二叉树先序遍历:根结点、左子树、右子树中序遍历:左子树、根结点、右子树后序遍历:左子树、右子树、根结点//typedef struct B原创 2021-11-08 14:37:21 · 617 阅读 · 0 评论