
数据结构
NavinCodeSpace
立此博客,与君共勉
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【栈】利用两个栈模拟队列
利用两个栈模拟队列 题目描述: 利用两个栈S1、S2来模拟一个队列,已知栈的4种定义如下: Push(S,x); //元素x入栈S Pop(S,x); //S出栈并将出栈的值赋给x StackEmpty(S); //判断栈是否为空 StackOverflow(S); //判断栈是否满 利用栈实现3个运算 Enqueue; /...原创 2020-01-01 15:37:47 · 4045 阅读 · 2 评论 -
【栈】栈在括号匹配中的应用
栈在括号匹配中的应用 题目描述: 假设一个算术表达式中包含圆括号、方括号和花括号3种类型的括号,编写一个算法判别表达式中括号是否匹配,以字符‘\0’作为算术表达式的结束符。 算法思想: 扫描每个字符,遇到圆、方、花的左括号是进栈,遇到圆、方、花的右括号时检查栈顶元素是否为相应的左括号,若是,退栈,否则匹配错误。最后栈不为空也为错误。 bool BracketCheck(char *st...原创 2020-01-01 10:45:34 · 1435 阅读 · 0 评论 -
【数据结构知识点】1.1 数据结构的基本概念
1.1 数据结构的基本概念 思维导图 1.1.1 基本概念和术语 1. 数据:数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机并被计算机程序识别和处理的符号的集合。 2. 数据元素:数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。 一个数据元素可由若干数据项组成,数据项是构成数据元素的不可分割的最小单位。 3. 数据对象:数据对象是具有相同性质的数据元...原创 2019-12-27 11:08:21 · 421 阅读 · 0 评论 -
【链表】简单选择排序
题目描述: 编写一个算法,在基于单链表表示的待排序关键字序列上进行简单选择排序。 算法思想: 每趟在原始链表中摘下关键字最大的结点,把它插入到结果链表的最前端,由于在原始链表中摘下的关键字越来越小,在结果链表前端的关键字也越小。 因此,最后形成的结果链表中的结点将按关键字非递减的序列有序排列。 //假设单链表不带头结点 void selectSort(LinkList &L) ...原创 2019-12-26 14:54:15 · 5095 阅读 · 0 评论 -
【顺序表】判别小根堆
题目描述: 设计一个算法,判断一个数据序列是否构成一个小根堆。 算法思想: 将顺序表L[1...n]视为一个完全二叉树,扫描所有分支结点,遇到孩子结点的关键字小于根结点的关键字时,返回false,扫描完后,返回true。 bool IsMinHeap(ElemType A[],int len) { if(len%2==0){ //len为偶数,有一个单分支结点 ...原创 2019-12-26 14:25:52 · 2115 阅读 · 0 评论 -
【树】树的分支的和—前序遍历
题目描述: 给定一个二叉树和一个值sum,判断是否有从根节点到叶子节点的节点值之和等于sum的路径, 例如: 给出如下的二叉树,sum=22 返回true,因为存在一条路径5->4->11->2的节点值之和为22 方法一: 算法思想:通过二叉树前序遍历算法思想 重点在于:sum-root->val;表明当前结点val与sum之间的差值 ...原创 2019-12-25 17:34:48 · 388 阅读 · 0 评论 -
【树】二叉树的深度—层序遍历
给定二叉树的深度 题目描述: minimum-depth-of-binary-tree 求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。 Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path ...原创 2019-12-24 15:01:07 · 499 阅读 · 0 评论 -
【数据结构】第7章 排序-插入排序
第7章 排序 7.1排序的基本概念 (1)排序:就是重新排列表中的元素,使表中的元素满足按关键字递增或递减的过程 (2)算法稳定性:若待排序表中有两个元素R1和R2,其对应的关键字key1=key2,且在排序前R1在R2的前面,若使用某一排序算法排序后,R1仍然在R2的前面,则称这个排序算法是稳定,否则称排序算法是不稳定。 7.2插入排序 插入排序的基本思想:每次将一个待排序的记录按其关...原创 2019-10-12 17:04:26 · 1594 阅读 · 0 评论