浙江大学陈越教授数据结构PTA 题目
文章平均质量分 51
PTA题目(数据结构实践书)
小吴同学·
记录从大二开始的计算机学习
展开
-
浙江大学陈越教授数据结构PTA 题目——7-4 模拟EXCEL排序 (20 分)【结构体数组和指向结构体的指针 】
一.思路二.学到的小知识点 1.scanf():如果%d遇到空格、回车、Tab键都不会取用,而是跳过它们继续往后面读取数据。直到取到“十进制整数为止”。唯一例外的是%c,根据%c,scanf会读取每一个字符,包括空白。 2....原创 2021-12-28 12:43:24 · 1807 阅读 · 0 评论 -
浙江大学陈越教授数据结构PTA 题目——所有排序法总结
一.选择排序1.小知识点:a)一维数组、二维数组的函数传递 调用函数时都只用写函数名! 但在函数的参数声明时,二维数组必须写出列数。(原因:C语言里面对二维数组的存储是按照一维数组来处理的,二维数组按照行展开的方式按顺序存储)void foo(int *a ,int n){ ...}int main(){ int a[3]={0,1,2}; foo(a , n);//只写函数名...原创 2021-12-26 10:41:49 · 1772 阅读 · 0 评论 -
浙江大学陈越教授数据结构PTA 题目——7-2 整型关键字的平方探测法散列
???#include <stdio.h>#include <math.h>#include <malloc.h>#include <stdbool.h>#define MAXTABLESIZE 10007typedef int ElementType;//关键词类型 typedef int Index;//散列地址类型 typedef Index Position;//数据所在位置与散列地址是同一类型typedef enum{ L.原创 2021-12-02 09:33:40 · 1876 阅读 · 2 评论 -
浙江大学陈越教授数据结构PTA 题目——7-1 词频统计
????#include <stdio.h>#include <malloc.h>#include <math.h>#include <stdbool.h>#include <string.h>#define KEYLENGTH 15//长度超过15的单词将只截取保留前15个单词字符 #define MAXTABLESIZE 111111//允许开辟的最大散列表长度 #define MAXWORDLEN 80 //单词输入的.原创 2021-12-02 09:13:00 · 4080 阅读 · 0 评论 -
浙江大学陈越教授数据结构PTA 题目——4-4 列出叶结点
一.题目理解1)叶(子)节点/终端结点/树叶:是度为 0 的结点。(带叶字或终端!)分支结点:度不为0的结点。 区:结点 2)层序遍历:从上到下、从左到右的顺序。(先进先出) a)借数组当队列!! b)怎么存入层序在数组中: 法1:数组存储的是从根节点开始,左孩子,右孩子,左孩子的...原创 2021-11-21 12:25:26 · 1772 阅读 · 0 评论 -
浙江大学陈越教授数据结构PTA 题目——4-1 根据后序和中序遍历输出先序遍历
一.二叉树的存储 结点的定义:区别:完美二叉树、完全二叉树(顺序存储)。二.怎样根据后序和中序遍历建立二叉树????????三.代码#include <stdio.h>#include <stdlib.h>#define MAXN 30typedef struct LNode *Position;//定义区别链表 typedef Position BinTree;struct LNode{ int D...原创 2021-11-20 11:48:47 · 481 阅读 · 0 评论 -
浙江大学陈越教授数据结构PTA 题目——4-2 搜索树判断
一.问题描述: 输入一个键值序列,判断该序列是否为某棵二叉搜索树或某镜像二叉搜索树的前序遍历序列,如果是,则输出对应二叉树的后序遍历序列。二.思路: 1.用数组存储输入的键值序列a,a[0]是二叉搜索树的根(Bintree BuildBST(int temp);),(用temp的原因是为了不改变a[],因为后面还要用它 与 二叉搜索树和镜像二叉搜索树的先序遍历比较)再通过遍历数组的每下一个值,插入这个元素,递归创建二叉搜索树。 2....原创 2021-11-13 12:04:50 · 718 阅读 · 0 评论 -
浙江大学陈越教授数据结构PTA 题目——3-6 银行业务队列简单模拟
1.队列的创建2.队列的基本操作原创 2021-10-31 12:49:09 · 250 阅读 · 1 评论 -
浙江大学陈越教授数据结构PTA 题目——3-5 汉诺塔的非递归实现(顺序堆栈)
一.问题描述: 1)汉诺塔:有a、b、c三根杆,要求把a杆上的金盘全部移到c杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上。 2)(n, a, b, c):将N个盘子从起始柱(标记为“a”)通过借助柱(标记为“b”)移动到目标柱(标记为“c”) 3)例: 二.思路问题转换为:(n-1,a,c,b)(1,a,b...原创 2021-10-31 12:11:37 · 657 阅读 · 1 评论 -
浙江大学陈越教授数据结构PTA 题目——两个有序链表序列的合并
一.链表的建立:(运用的是:有头结点的链表,和尾插法)#include <stdio.h>#include <stdlib.h> //malloc和free的头文件int main(){ List L1; L1=Creatlist(); ...}二.链表知识补充:1.头指针,头结点,首元结点,尾结点a.头指针:永远指向链表第一个结点的位置,即链表名。(所以链表名字类型...原创 2021-10-03 15:47:08 · 1446 阅读 · 3 评论 -
浙江大学陈越教授数据结构PTA 题目——数组中插入一个数(利用二分法)
一.实验实质:利用二分法找到要插入数的位置,再进行插入操作。二.具体操作过程中遇到的问题: 1.记得排除插入数已经在数组中的结果,返回FALSE。 2.数组中增加数的方法: a.定义数组时的元素数量足够大(后面设0),给插入的数留空位。 b.将数组改为链表储存(一个结构体代表链表的一个结点,结构体中不能赋值数组,因为这样链表就无意义了,不能根据下标找到需要的元素) ...原创 2021-09-28 11:38:08 · 859 阅读 · 0 评论 -
浙江大学陈越教授数据结构PTA 题目——3-1 jmu-ds-顺序表区间元素删除
一.思路要点: 设一个位置变量p; p的初始值为从左向右扫描时发现的第一个需要删除的元素的位置。所有元素被扫描完后,此时p指向表尾最后一个空格处,最后更新Last=p-1。(因为循环的p每次要加一)二.操作过程中的问题:1)顺序表的建立2)对顺序表中元素的输入不用取地址????...原创 2021-10-19 11:01:32 · 575 阅读 · 0 评论 -
浙江大学陈越教授数据结构PTA 题目——2-3 数组循环左移
一.问题描述:一个数组a中存有n(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移m(≥0)个位置,即将a中的数据由(a0a1⋯an−1)变换为(am⋯an−1a0a1⋯am−1)(最前面的m个数循环移至最后面的m个位置)。二.思路:1)数组元素交换三次顺序: a)整个数组全部逆序 b)前面的a[0]——a[n-1-m]逆序c)后面的a[n-m]——a[n-1]逆序...原创 2021-10-10 19:58:10 · 750 阅读 · 1 评论 -
浙江大学陈越教授数据结构PTA 题目——最大子列和(在线处理法)
注意:1.数组的循环输入要取地址!!!!!for(int i=0;i<K;i++) { scanf("%d",&a[i]); //要取地址 }2.ThisSum的累加方法:ThisSum+=a[i];3.理解在线处理法的实质:抛弃负子列,且保证最大子列和递增。与之对应的两个判断条件思考的是两个不同的方向。 if(ThisSum<=0) //当前子列和...原创 2021-09-26 11:01:25 · 401 阅读 · 0 评论 -
浙江大学陈越教授数据结构PTA 题目——二分法非递归(数组)
注意的问题:1.二分法非递归:调整左右的边界2.NotFound 不是关键字,要进行定义3.数组传入函数可以未定义大小也可以定义大小理由:函数而言,数组的长度是无关紧要的,因为 C 不会对形式参数执行边界检查4.分清Right和Left(对应右左,分析理解对应Mid+\-1)#include <stdio.h>int BinarySearch(int a[],int x,int n){ int Mid,Right,Left; Left = ...原创 2021-09-26 10:51:31 · 418 阅读 · 0 评论