![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构学习
uflyjz
小白
展开
-
PTA 05-树7 堆中的路径 (25 分)
question:将一系列给定数字插入一个初始为空的小顶堆H[]。随后对任意给定的下标i,打印从H[i]到根结点的路径。输入格式:每组测试第1行包含2个正整数N和M(≤1000),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间[-10000, 10000]内的N个要被插入一个初始为空的小顶堆的整数。最后一行给出M个下标。输出格式:对输入中给出的每个下标i,在一行中输出从H[i]到根结点的路径上的数据。数字间以1个空格分隔,行末不得有多余空格。输入样例:5 346原创 2021-08-01 18:57:08 · 80 阅读 · 0 评论 -
PTA 04-树4 是否同一棵二叉搜索树 (25 分)
question:给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。输入格式:输入包含若干组测试数据。每组数据的第1行给出两个正整数N(≤10)和L,分别是每个序列插入元素的个数和需要检查的序列个数。第2行给出N个以空格分隔的正整数,作为初始插入序列。最后L行,每行给出N个插.原创 2021-07-31 21:45:49 · 59 阅读 · 0 评论 -
PTA 04-树7 二叉搜索树的操作集 (30 分)
心得:分支别偷懒不写else if的else(即使看上去条件显然互斥),因为可能会在前面的某个if改变了某个值导致互斥分支全都执行了。question:本题要求实现给定二叉搜索树的5种常用操作。函数接口定义:BinTree Insert( BinTree BST, ElementType X );BinTree Delete( BinTree BST, ElementType X );Position Find( BinTree BST, ElementType X );Posi..原创 2021-07-31 16:18:53 · 84 阅读 · 0 评论 -
PTA 03-树2 List Leaves (25 分)
question: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 case. For each case, the first line gives a positive integerN(≤10) which is the total n..原创 2021-07-29 22:44:41 · 124 阅读 · 0 评论 -
PTA 03-树1 树的同构 (25 分)
Question:给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。 图1 图2 现给定两棵树,请你判断它们是否是同构的。输入格式:输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一个非负整数N(≤10),即该树的结点数(此时假设结点从0到N−1编号);随后N行,第i行对应编号第i个结点,给出该结.原创 2021-07-29 21:46:44 · 66 阅读 · 0 评论 -
PTA 02-线性结构4 Pop Sequence
本题我写了好久并且写得麻烦了。Question:Given a stack which can keepMnumbers at most. PushNnumbers in the order of 1, 2, 3, ...,Nand pop randomly. You are supposed to tell if a given sequence of numbers is a possible pop sequence of the stack. For example, ifM...原创 2021-07-24 17:30:26 · 67 阅读 · 0 评论 -
PTA 02-线性结构3 Reversing Linked List 周期性逆转链表
第一次自己搞半天实在不会,看了姥姥的讲解(在【树(中)】那课里)后又做了半天才通过。这是笔者学习计算机以来遇到的最难的题了。。。思路:用结构体数组模拟内存中的链表;将逆转链表分解成许多个逆转子链表。#include <stdio.h>#include <stdlib.h>#define MAX 100000#define NULL -1typedef int Ptr;typedef int ElementType;typedef Ptr List;s..原创 2021-07-24 12:08:34 · 202 阅读 · 2 评论 -
四种方法求最大子列和
复杂度依次递增#include <stdio.h>#define Max2(a, b) a > b ? a : b#define Max3(a, b, c) a > b ? (a > c ? a : c) : (b > c ? b : c)int MaxSubseqSum1(int *, int);int MaxSubseqSum2(int *, int);int MaxSubseqSum3(int *, int);int MaxSubseqSum4(原创 2021-07-21 11:59:50 · 94 阅读 · 0 评论 -
链表实现一元多项式加法与乘法
初学,写得不好的地方请指教!题目:设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。输入样例:4 3 4 -5 2 6 1 -2 03 5 20 -7 4 3 1输出样例原创 2021-07-23 17:28:43 · 148 阅读 · 0 评论