-
【数据结构】实现一个栈,要求实现Push(出栈)、Pop(入栈)、M
所属栏目:[安全] 日期:2020-12-15 热度:107
实现一个栈,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1) 在栈中操作的话,push和pop的时间复杂度就是O(1),所以我们只用实现Min(返回最小值的操作)的时间复杂度为O(1), 思想就是用两个栈,一个就是普通的存取数据的栈[详细]
-
【数据结构】一个数组实现两个栈
所属栏目:[安全] 日期:2020-12-15 热度:88
一个数组实现两个栈有很多想法,我先写一种比较简单的,思路如下图所示: 代码如下: #includeiostreamusing namespace std;//一个数组实现两个栈template class Tclass arraystack{public : arraystack() { _array1 = new T[10]; _array2 = _array1 + 9; _s[详细]
-
【数据结构】逆波兰表达式
所属栏目:[安全] 日期:2020-12-15 热度:58
此篇文章中默认逆波兰表达式已经转换为后缀表达式 题意简述为; 解决问题的思想为:建立一个栈,把这些数据依次往栈里读,若读到数字入栈,若读到符号将栈顶元素保存到right中,pop掉当前元素,再将栈顶元素保存到left中将结果算出来在入栈,直到算完为止。[详细]
-
【数据结构】栈以及两个栈实现一个队列
所属栏目:[安全] 日期:2020-12-15 热度:116
栈以及两个栈实现一个队列 //数组版动态增长的栈#pragma oncetemplate class Tclass stack{ public : stack() :_top(NULL),_base(NULL),_size(0),_capacity(0) {} void PushStack(const T x) { //判断栈是否已满 //插入 if(_size == _capacity) { _capacity[详细]
-
【数据结构】队列以及两个队列实现一个栈
所属栏目:[安全] 日期:2020-12-15 热度:63
队列以及两个队列实现一个栈 #pragma oncetemplate class Tstruct QueueNode{public : QueueNode( const T x) :_data(x),_next(NULL) {} T _data; QueueNode* _next;};template class Tclass queue{public : queue() :_head(NULL),_tail(NULL),_size(0) {} ~[详细]
-
【数据结构】·【链表】·【JAVA版】
所属栏目:[安全] 日期:2020-12-15 热度:74
和C++并没有差别不大,主要是指针改为了引用变量,其他的链式结构基本可以参照这个 至于树的话注意下递归就大致可以了 package com.sun.study.test;class Link{public int data;public Link next;public Link(int data) {this.data = data;}public void disp[详细]
-
【数据结构】单链表的倒置
所属栏目:[安全] 日期:2020-12-15 热度:148
关于单链表的倒置: 在面试过程中,笔试中会考到许多数据结构的面试题,我们来看一个不是很难的单链表逆置,许多笔试题中都有可能出现这个单链表的逆置。 在这些题中,往往是不存在哨兵位,而给的是一个头指针。什么是哨兵位呢。 哨兵位:创建一个头结点,头[详细]
-
【数据结构】寻找2个单链表相同的值
所属栏目:[安全] 日期:2020-12-15 热度:110
在关于基础单链表的面试题中,有一道这样的面试题: 打印输出2个链表中的相同节点。 比如2个这样的链表。 650) this.width=650;" src="http://img.jb51.cc/vcimg/static/loading.png" title="_MJGX_UQMU`_OB]1M8CTWEL.png " alt="wKioL1Y7K-KB6e35AAA9zhH9XN[详细]
-
【数据结构】二叉排序树BST
所属栏目:[安全] 日期:2020-12-15 热度:162
二叉排序树 二叉排序树(Binary Sort Tree)也叫二叉搜索树(Binary Search Tree) 二叉排序树本质上还是一个二叉树,只不过在其上定义了一些规则:一个结点的左子树中所有的结点不大于该结点的值,而其右子树中的所有结点不小于该结点的值。由此规则可得BST中序[详细]
-
【数据结构】【输入一个整数数组,判断该数组是不是某二元查找树
所属栏目:[安全] 日期:2020-12-15 热度:64
题目来源:北航14级6系数据结构作业题 【问题描述】 输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回 true ,否则返回 false 。 【输入形式】 输入任意长度的数组,数字之间空格分开 【输出形式】 true 或者 false 【样例输入[详细]
-
【数据结构】求节点的哈夫曼的带权路径长度
所属栏目:[安全] 日期:2020-12-15 热度:92
题目来源:北航14级6系数据结构作业 【问题描述】 已知输入一串正整数,正整数之间用空格键分开,请建立一个哈夫曼树,以输入的数字为叶节点,求这棵哈夫曼树的带权路径长度。 【输入形式】 首先输入正整数的个数,然后接下来为接下来的正整数,正整数个数不[详细]
-
【数据结构】平衡二叉排序树BBST之AVL树
所属栏目:[安全] 日期:2020-12-15 热度:120
平衡二叉排序树 平衡二叉排序树(Balanced Binary Sort Tree),上一篇博客【数据结构】二叉排序树BST讲了BST,并且在最后我们说BST上的操作不会超过O(h),既然树高这么重要,那么BBST的研究就是为了使得树的深度在可接受的范围内渐近意义下达到O(lgn) n个节点[详细]
-
【数据结构】树与二叉树的区别
所属栏目:[安全] 日期:2020-12-15 热度:173
最近在看C++的习题,几乎每套选择题都会出现二叉树,因为之前对数还是比较熟悉的,所以上一篇总结了从零开始学习树,很自然的就想到比较二者到底有什么区别,那么首先来看看二叉树到底有哪些性质,在来说二者有什么区别。 一、基本性质: 1) 在二叉树中,第i[详细]
-
【数据结构】求最小生成树的权值之和——Prim算法
所属栏目:[安全] 日期:2020-12-15 热度:157
题源: 北航14级6系数据结构课第四次作业 【问题描述】 已知含有n个顶点的带权连通无向图,采用邻接矩阵存储,邻接矩阵以三元组的形式给出, 只给出不包括主对角线元素在内的下三角形部分的元素,且不包括不相邻的顶点对 。求该连通图的最小生成树的权值 【[详细]
-
【数据结构】选择排序
所属栏目:[安全] 日期:2020-12-15 热度:63
对于一个int数组,请编写一个选择排序算法,对数组元素排序。 给定一个int数组A及数组的大小n,请返回排序后的数组。 测试样例: [1,2,3,5,3],6 [1,5] class SelectionSort {public: void swap( int * a, int * b){ int temp = *a ; *a = *b ; *b = temp; }[详细]
-
【数据结构】插入排序
所属栏目:[安全] 日期:2020-12-15 热度:99
对于一个int数组,请编写一个插入排序算法,对数组元素排序。 给定一个int数组A及数组的大小n,请返回排序后的数组。 测试样例: [1,2,3,5,3],6 [1,5] class InsertionSort {public: void swap( int * a, int * b){ int temp = *a ; *a = *b ; *b = temp; }[详细]
-
【数据结构】归并排序
所属栏目:[安全] 日期:2020-12-15 热度:97
对于一个int数组,请编写一个归并排序算法,对数组元素排序。 给定一个int数组A及数组的大小n,请返回排序后的数组。 测试样例: [1,2,3,5,3],6 [1,5] 思路:合并两个有序数组即可。 1, 接口为mergeSort(int * A,int n),要将其转化为递归问题来做 2, 在me[详细]
-
【《数据结构》2015-2016学年上学期总结】
所属栏目:[安全] 日期:2020-12-15 热度:96
《数据结构》2015-2016学年上学期总结 2016年将近,大学好像刚刚开始,却又似乎已经快要结束了,大学的时光太匆匆,稍不留意,转眼之间就已不是那时情景了。大二上学期将尽,借此回顾总结,我的这半年。 这学期的学习任务并不轻松,由贺立坚老师教授的《数据[详细]
-
【数据结构】希尔排序
所属栏目:[安全] 日期:2020-12-15 热度:191
对于一个int数组,请编写一个希尔排序算法,对数组元素排序。 给定一个int数组A及数组的大小n,请返回排序后的数组。保证元素小于等于2000。 测试样例: [1,2,3,5,3],6 [1,5] #includeiostream #includestring using namespace std ; class ShellSort { publ[详细]
-
【数据结构】计数排序
所属栏目:[安全] 日期:2020-12-15 热度:59
对于一个int数组,请编写一个计数排序算法,对数组元素排序。 给定一个int数组A及数组的大小n,请返回排序后的数组。 测试样例: [1,2,3,5,3],6 [1,5] #includeiostream #includestring using namespace std ; class CountingSort { public : void display([详细]
-
【数据结构】树
所属栏目:[安全] 日期:2020-12-15 热度:133
1、树的定义 树(Tree)是n个结点(元素的有限集合)。当n=0时,称这棵树为空树。在非空树T中: (1) 有且只有一个特殊的结点称为树的根结点(root),根结点没有前驱结点。 (2) 当n1时,除了根结点之外的其余的结点又被分成m个互不相交的子集。每个子集[详细]
-
【数据结构】【排序】求第k大的数——用谢尔排序实现
所属栏目:[安全] 日期:2020-12-15 热度:162
题源:*航*系数据结构作业 【问题描述】 求n个数中第k大的数 【输入形式】 第一行n k,第二行为n个数,都以空格分开 【输出形式】 第k大的数 【样例输入】 103 182111261229334328 【样例输出】 28 【样例说明】 【评分标准】 时间复杂度大于等于 O(k*n) 的[详细]
-
【数据结构】堆积排序
所属栏目:[安全] 日期:2020-12-15 热度:157
题源:*航*系 数据结构作业 【问题描述】对一含有n个整数的数组,使用堆排序将其由小到大排序。 【输入形式】第一行为元素个数n,第二行为n个整数(以空格隔开)。 【输出形式】输出n个整数(以空格隔开) 【样例输入】 6 43 2 56 1 22 9 【样例输出】 1 2 9[详细]
-
【数据结构】用Hash方法统计数字出现次数
所属栏目:[安全] 日期:2020-12-15 热度:98
题源:北航6系数据结构作业 【问题描述】 用HASH方法统计整数出现的次数 【输入形式】 以逗号分隔,#结尾的整数 【输出形式】 等式。左侧为排序好的整数,右侧为其出现的次数。 【样例输入】 2,6,7,13,18,3,1,7# 【样例输出】 1=1 2=1 3=2 6=2 7=2 13=1 18=[详细]
-
【数据结构】链表与顺序表的优缺点,和2道经典的题
所属栏目:[安全] 日期:2020-12-15 热度:183
这两道题是:1.从尾到头打印单链表。 2.单链表实现约瑟夫环的问题。 首先我们在面试时可能会遇到说明一下顺序表和链表的优缺点,说说他们分别在什么场景下使用: 1.首先我们从2种结构的结构上来进行分析: (1)对于顺序表。不论是静态的还是动态的,他们都[详细]