
PTA数据结构
文章平均质量分 54
Selvaggia
这个作者很懒,什么都没留下…
展开
-
根据前序遍历和中序遍历找后续遍历、层次遍历
这里写目录标题中序+前序 ——> 后序法一:将数组传参法二:将中序下标传参,前序的root传参(前序遍历中总能找到 根节点、左子树根节点、右子树根节点)中序+前序 ——> 层次遍历中序+前序 ——> 后序法一:将数组传参由中序遍历和前序遍历得到后续遍历(镜像翻转或不翻转)这是之前的老做法,把数组作为参数,每次传具体某一段数组的首地址麻烦的地方在于,有时候找不准某段数组的首地址以下标0开始的数组,str【i】为首的数组段,地址是str+i以下标1开始的数组,str【i】为首的数原创 2022-04-13 16:59:08 · 934 阅读 · 1 评论 -
PTA题解
7-5 Shuffling Machine (20 分)#include <iostream>#include <map>using namespace std;int a[60];int b[60];map<int,int> mp;int main(){ int k; cin>>k; for(int i=1;i<=54;i++){ cin>>a[i]; b[i]=i;//i位置上的值 } while(k--原创 2022-02-23 18:26:36 · 433 阅读 · 0 评论 -
循环数组pos=(pos+1 )%n 如果pos代表数组下标,数组一定要利用下标0
7-8 数组循环左移 (20 分)本题要求实现一个对数组进行循环左移的简单函数:一个数组a中存有n(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移m(≥0)个位置(最前面的m个数循环移至最后面的m个位置)。如果还需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式:输入第1行给出正整数n(≤100)和整数m(≥0);第2行给出n个整数,其间以空格分隔。输出格式:在一行中输出循环左移m位以后的整数序列,之间用空格分隔,序列结尾不能有多余空格。输入样例:8 3原创 2022-02-04 15:14:10 · 1008 阅读 · 0 评论 -
7-17 根据后序和中序遍历输出先序遍历 (25 分)
7-17 根据后序和中序遍历输出先序遍历 (25 分)不建树,直接输出#include<iostream>#include<string.h>using namespace std;int hs[35];int zs[35];int n;//int flag=1; void print(int str1[],int str2[],int len){ if(len==0)return ;// else if(len==2){//先输出后序遍历最后一个正着这个规律原创 2022-01-27 14:41:10 · 620 阅读 · 0 评论 -
求二叉树底下两层节点数(非链表形式)、dfs求节点层数
1115 Counting Nodes in a BST (30 分)不用链表用数组非链表形式#include<iostream>#include<queue>#include <algorithm> using namespace std;const int MAX=1005;#define inf 0x3f3f3fint a[MAX];//存放节点的值 int index;//随着向a数组中插入节点,index逐渐确定 int l[MAX];//原创 2022-01-25 18:18:07 · 305 阅读 · 0 评论 -
7-12 一元多项式的乘法与加法运算 (20 分)(链表~)
7-12 一元多项式的乘法与加法运算 (20 分)再也不想用链表了,这么长,老是要用打印语句去纠错,还wa了//#include<iostream>//#include<stdio.h>//#include <stdlib.h>//#include <math.h>//#include<algorithm>//#include <bits/stdc++.h>//----------------不许写万能头#includ原创 2022-01-23 14:37:51 · 535 阅读 · 0 评论