
数据结构
文章平均质量分 83
Begin to change
咸鱼也是会翻身的!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二叉树知识点最详细最全讲解
1.树的介绍1.1树的定义 树是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。 把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点: 1.每个节点有零个或多个子节点; 2.没有父节点的节点称为根节点; 3.每一个非跟节点有且仅有一个父节点; ...原创 2021-04-05 23:12:53 · 79642 阅读 · 14 评论 -
用栈实现队列(Leetcode第232题)+用队列实现栈(Leetcode第225题)
1.题目描述2.思路思路是很清晰的,栈是先进后出,而队列是先进先出,所以要用栈实现队列,就必须用到两个栈,一个输入栈,一个输出栈在push数据的时候,只要数据放进输入栈就好,「但在pop的时候,操作就复杂一些,输出栈如果为空,就把进栈数据全部导入进来(注意是全部导入)」,再从出栈弹出数据,如果输出栈不为空,则直接从出栈弹出数据就可以了。如果进栈和出栈都为空的话,说明模拟的队列为空了。3.代码展示class MyQueue {public: stack<int&g原创 2021-04-04 19:18:12 · 422 阅读 · 0 评论 -
贪心算法与动态规划的区别与联系
目录1.定义1.1贪心算法1.1.1解题步骤1.2动态规划1.2.1解题步骤2.联系3.区别1.定义1.1贪心算法贪心算法是指在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,只做出在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。1.1.1解题步骤 1.建立数学模型来描述问题; ...原创 2021-03-31 10:51:54 · 1477 阅读 · 0 评论 -
表达式求值(最详细分析+代码实现+表达式之间的相互转换)
目录一、概念二、前缀表达式的逻辑和实现方式1.定义2.前缀表达式的计算机求值3.例子4.代码实现三、中缀表达式的逻辑和实现方式1.定义2.中缀表达式规则3.中缀表达式的计算机求值4.代码实现四、后缀表达式的逻辑和实现方式(逆波兰表达式求值)1.定义2.后缀表达式计算机求值3.例子4.代码实现五、相互转换1.中缀表达式转化为前缀表达式①算法描述②例子2.前缀表达式转化为中缀表达式3.中缀表达式转化为后缀表达式①算法描述原创 2021-03-25 22:40:27 · 39067 阅读 · 9 评论 -
线性表及其实现
typedef int Position;//为已定义好的数据类型创建别名为position; typedef struct LNode *List;//创建类型为LNode的指针List struct LNode {//创建数据结构; ElementType Data[MAXSIZE];//(约定元素的数据类型为ElementType); Position Last;}...转载 2018-10-30 20:50:42 · 530 阅读 · 0 评论 -
堆栈
栈可定义为只允许在表的末端进行插入和删除的线性表,允许插入和删除的一端叫栈顶.而不允许插入和删除的一段叫做栈底.如图: typedef int Position;struct SNode { ElementType *Data; /* 存储元素的数组 */ Position Top; /* 栈顶指针 ,栈顶 int MaxSize;...原创 2018-11-06 18:46:54 · 184 阅读 · 0 评论 -
一维数组的杨辉三角
#include<stdio.h>int main(){ int n,i,j,a[100]; scanf("%d",&n); for(i=0;i<n-1;i++) printf(" "); printf("1\n");//杨辉三角的第一行为肯定为1,不在规律的范围; a[1]=a[2]=1;//第二行两个也是为1,不会改变; for(i=0;i&...原创 2019-03-31 22:00:47 · 2008 阅读 · 2 评论