数据结构
文章平均质量分 86
橘子海,
学生一枚 studying~
展开
-
数据结构-图
🎈图由顶点集V和边集E组成,记为G(V,E),其中V表示图G中顶点的有限非空集,E表示图G中顶点之间的关系集合。✅若E是无向边的有限集合时,则图G为无向图✅若E是有向边(也称为弧)的有限集合时,则图G为有向图✅不存在重复的边;不存在顶点到自身的边✅图G中某两个结点之间的边数多于一条,又允许顶点通过同一条边和自己关联✅有向完全图:任意两个顶点之间存在方向相反的两条弧,n*(n-1)条弧边无向完全图:任意两个顶点之间都存在边,n*(n-1)/2条边✅。原创 2023-05-02 15:38:33 · 881 阅读 · 2 评论 -
数据结构-树与二叉树
🎈树是n(n>=0)个结点的有限集。当n=0时,称为空树。树的根节点没有前驱,除根节点外的所有结点有且只有一个前驱树中所有结点都可以有零个或多个后继✅二叉树的定义🎈每个结点至多有两颗子树,并且二叉树的结点有左右之分🎄二叉树的五种形态✅特殊二叉树🔴满二叉树:除叶子结点外,每个结点度数均为2🟠完全二叉树:与其对应满二叉树中编号1~n一 一对应度为1的结点只能有一个,且该结点只有左孩子没有右孩子🟡二叉排序树:左子树的关键字 < 根 < 右子树的关键字。原创 2023-04-15 15:08:56 · 499 阅读 · 0 评论 -
二叉树的层序遍历
需要借用一个辅助数据结构即队列来实现,队列先进先出,符合一层一层遍历的逻辑,而用栈先进后出适合模拟深度优先遍历也就是递归的逻辑。而这种层序遍历方式就是图论中的广度优先遍历,只不过我们应用在二叉树上。层序遍历一个二叉树。就是从左到右一层一层的去遍历二叉树。本题只是换了一种树,但思路代码都是一样的。原创 2023-01-28 12:37:13 · 771 阅读 · 0 评论 -
二叉树的遍历
分析一下为什么刚刚写的前序遍历的代码,不能和中序遍历通用呢,因为前序遍历的顺序是中左右,先访问的元素是中间节点,要处理的元素也是中间节点,所以刚刚才能写出相对简洁的代码,因为。先序遍历是中左右,后续遍历是左右中,那么我们只需要调整一下先序遍历的代码顺序,就变成中右左的遍历顺序,然后在反转result数组,输出的结果顺序就是左右中了。前序遍历是中左右,每次先处理的是中间节点,那么先将根节点放入栈中,然后将右孩子加入栈,再加入左孩子。每次写递归,都按照这三要素来写,可以保证写出正确的递归算法!原创 2023-01-27 12:16:56 · 356 阅读 · 0 评论 -
栈与队列总结
栈是一种基于先进后出(FILO)的数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。我们称数据进入到栈的动作为压栈,数据从栈中出去的动作为弹栈。队列是一种基于先进先出(FIFO)的数据结构,是一种只能在一端进行插入,在另一端进行删除操作的特殊线性表,它按照先进先出的原则存储数据,先进入的数据,在读取数据时先读被读出来。原创 2023-01-26 22:19:28 · 545 阅读 · 0 评论 -
栈的应用-四则运算表达式求值
若是符号,则判断其与栈顶符号的优先级,是右括号或优先级低于栈顶符号则栈顶元素依次出栈并输出,并将当前符号进栈,一直到最终输出后缀表达式为止。规则:从左到右遍历表达式的每个数字和符号,遇到是数字就进栈,遇到是符号就将处于栈顶两个数字出栈,进行运算,运算结果进栈,一直到最终获得结果。,后面是 ),此时,我们需要去匹配此前的 (,所以依次出栈并输出,直到 (出栈为止。紧接着是符号 * ,因为此时的栈顶元素为 +,优先级低于 * ,因此不输出, *进栈。第一个是数字9,输出09,后面是符号 +,进栈。原创 2023-01-26 22:13:56 · 384 阅读 · 0 评论