
数据结构刷题
题库分类,并选择考试频率较高的题目
Tas飞鱼
这个作者很懒,什么都没留下…
展开
-
浙大数据结构题目集:Saving James Bond - Easy Version
浙大数据结构题目集:Saving James Bond - Easy Version题目描述This time let us consider the situation in the movie “Live and Let Die” in which James Bond, the world’s most famous spy, was captured by a group of dru...原创 2020-04-30 13:24:42 · 229 阅读 · 0 评论 -
数据结构与算法:堆的操作集
数据结构与算法:堆的操作集堆是一种特殊的数据结构,类似于优先队列,也就是说其中的元素是具有优先级的。堆在计算机CPU分配时有应用,比如对于控制核反应的电脑,控制的调度优先级大于其他的程序,每次从队列中取出的元素都是整个堆中最大的。堆的实现方法是采用类似二叉树的结构,这个二叉树用数组来存储。堆按照根节点和子节点的大小关系分为最大堆和最小堆,下面以最大堆为例,给出堆的操作集。#include&...原创 2020-03-25 15:26:58 · 314 阅读 · 0 评论 -
Leetcode:617.合并二叉树
Leetcode:617合并二叉树题目描述给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例 1:输入:Tree 1 Tree 21 ...原创 2020-03-24 18:04:56 · 125 阅读 · 0 评论 -
Leetcode:226.翻转二叉树
Leetcode:226.翻转二叉树题目描述翻转一棵二叉树。示例:输入: 4/ 2 7/ \ / 1 3 6 9输出: 4/ 7 2/ \ / 9 6 3 1备注:这个问题是受到 Max Howell 的 原问题 启发的 :谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板...原创 2020-03-24 17:18:58 · 154 阅读 · 0 评论 -
Leetcode:543.二叉树的直径
Leetcode:543.二叉树的直径题目描述给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。注意:两结点之间...原创 2020-03-23 17:03:29 · 202 阅读 · 0 评论 -
Leetcode:110.平衡二叉树
Leetcode:110.平衡二叉树题目描述给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7]3/ 9 20/ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4...原创 2020-03-23 16:11:41 · 135 阅读 · 0 评论 -
mooc作业题:Root of AVL Tree
Root of AVL Tree题目描述An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child subtrees of any node differ by at most one; if at any time they differ by more th...原创 2020-03-23 15:38:18 · 237 阅读 · 0 评论 -
数据结构与算法:二叉搜索树的操作集
数据结构与算法:二叉搜索树的操作集二叉搜索树是一种特殊的树结构,它能够将数据有序的储存起来,在进行查找时速度非常快,利用的是二分查找的思想,算法复杂度是O(logN),所以是一种非常重要的数据结构。操作集包括:按值查找节点,查找最小值节点,查找最大值节点,插入节点,删除节点。其中最麻烦的是删除节点,在删除的函数里有详细的注释。#include<cstdlib>#includ...原创 2020-03-22 14:57:50 · 204 阅读 · 1 评论 -
Leetcode:445.两数相加Ⅱ
Leetcode:445.两数相加Ⅱ题目描述给定两个非空链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储单个数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。进阶:如果输入链表不能修改该如何处理?换句话说,你不能对列表中的节点进行翻转。示例:输入: (7 -> 2 -> 4 -> 3) + (5 -...原创 2020-03-21 20:15:04 · 169 阅读 · 0 评论 -
Leetcode:24.两两交换链表中的节点
Leetcode:24.两两交换链表中的节点题目描述给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/swa...原创 2020-03-21 17:46:52 · 147 阅读 · 0 评论 -
Leetcode:104.二叉树的最大深度&&111.二叉树的最小深度
Leetcode:二叉树的最大深度题目描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回它的最大深度 3 。来源:力扣(LeetCode)链接:https://leetcode-cn.c...原创 2020-03-11 14:23:02 · 265 阅读 · 0 评论 -
Leetcode:19.删除链表的倒数第N个节点
Leetcode:19.删除链表的倒数第N个节点题目描述给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?来源:力扣(LeetCo...原创 2020-03-11 13:34:16 · 113 阅读 · 0 评论 -
mooc作业题:树的同构
mooc作业题:数的同构本题在判断是否同构时需要考虑很多因素,对逻辑的要求非常高。同样本题也考察了建树的基本功,可以用这个题来锻炼自己建树的能力。题目描述给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。现给定两棵树,...原创 2020-03-10 14:28:02 · 150 阅读 · 0 评论 -
mooc作业题:list leaves
mooc作业题:list leaves本题主要考察建树的基本功和层序遍历题目描述Given a tree, you are supposed to list all the leaves in the order of top down, and left to right.Input Specification:Each input file contains one test cas...原创 2020-03-10 14:20:53 · 341 阅读 · 0 评论 -
数据结构与算法:二叉树的实现和遍历方法(先序,中序,后序,层序遍历)
数据结构与算法:二叉树的实现和遍历方法(递归与非递归)二叉树是数据结构中非常重要的一种,在它的基本操作方法中,遍历是最基本的也是必须要掌握的。本文将给出二叉树的C++语言实现和遍历的方法。二叉树的遍历分为递归和非递归,递归方法包括先序遍历,中序遍历,后序遍历。非递归方法包括先序遍历,中序遍历,后序遍历,层序遍历。下面给出实现代码:#include <stack>#includ...原创 2020-03-08 19:51:19 · 554 阅读 · 0 评论 -
Leetcode:83.删除排序链表中的重复元素
Leetcode:83.删除排序链表中的重复元素题目描述给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3来源:力扣(LeetCode)链接:https://leetcode-cn.com/probl...原创 2020-03-06 23:16:07 · 155 阅读 · 0 评论 -
Leetcode:21.合并两个有序链表
Leetcode:21.合并两个有序链表这道题和浙大mooc中的一个练习题一样,不同的是,那个题返回的链表头有一个空的头结点,但这个没有头结点。题目描述将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4来源:...原创 2020-03-06 16:07:20 · 117 阅读 · 0 评论 -
Leetcode:206.反转链表
Leetcode:206.反转链表反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL思路:用三个指针pre,p,head,每次head先往后移动标记后面的链表,然后p指向pre,直到head为空。/** * Definition for singly-link...原创 2020-03-06 14:09:13 · 160 阅读 · 0 评论 -
Leetcode:160.相交链表
Leetcode:160.相交链表求相交的链表节点示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个列表相交则不能为 0)。从各自的表...原创 2020-03-06 13:44:05 · 122 阅读 · 0 评论 -
浙大数据结构题目集:一元多项式的乘法与加法运算
一元多项式的乘法与加法运算这道题其实直接根据老师的思路就可以了,老师的思路非常清晰,而且代码也很规范,走一遍老师的代码可以学到很多东西。设计函数分别求两个一元多项式的乘积与和。题目描述:输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输出分2行,分别以指数递降方式输出...原创 2020-03-05 18:36:38 · 266 阅读 · 0 评论 -
浙大数据结构题目集:数列求和加强版
浙大数据结构题目集:数列求和加强版给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+AA+AAA+⋯+AA⋯A(N个A)。例如A=1, N=3时,S=1+11+111=123。输入格式:输入数字A与非负整数N。输出格式:输出其N项数列之和S的值。输入样例:1 3输出样例:123思路本题难就难在数据溢出的情况,不能用传统的数据类型,即便是lon...原创 2020-03-04 22:45:17 · 754 阅读 · 0 评论 -
浙大数据结构题目集:数组左移和右移
浙大数据结构题目集:数组左移和右移数组右移一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0 A1⋯AN−1)变换为(AN−M⋯AN−1 A0 A1 ⋯AN−M−1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式:每个输入包含一个...原创 2020-03-04 22:27:11 · 325 阅读 · 0 评论 -
mooc作业题:Maximum Subsequence Sum
Maximum Subsequence Sum又是一道最大子列和问题,这次题目相比原版增加了一项,要把最大子列的第一项和最后一项也打印出来。题目描述Given a sequence of K integers { N1, N2 , …, K }. A continuous subsequence is defined to be { Ni , i+1, …, Nj } ...原创 2020-03-04 19:07:57 · 168 阅读 · 0 评论 -
mooc作业题:最大子列和问题
最大子列和问题给定K个整数组成的序列{ N1, N2, …, K},“连续子列”被定义为{ Ni, Ni+1, …,Nj},其中 1≤i≤j≤K。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给定序列{ -2, 11, -4, 13, -5, -2 },其连续子列{ 11, -4, 13 }有最大的和20。现要求你编写程序,计算给定整数序列的最大子列和。本题旨在测试各种不...原创 2020-03-03 20:40:56 · 330 阅读 · 0 评论 -
mooc作业题:两个有序链表的合并
两个有序链表的合并这个题是对链表操作的一个基本熟悉,适合新手小白做,思路是比较清晰的函数接口定义:List Merge( List L1, List L2 );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next...原创 2020-03-03 20:08:16 · 845 阅读 · 0 评论 -
mooc作业题:线性结构:Pop Sequence
mooc作业题:线性结构:Pop Sequence题目描述:Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, …, N and pop randomly. You are supposed to tell if a given sequence of numbers i...原创 2020-03-03 19:48:46 · 400 阅读 · 0 评论