
PTA题集
硬着头皮写代码的菜鸡
这个作者很懒,什么都没留下…
展开
-
PTA 浙大版《数据结构(第2版)》题目集 习题4.3 是否二叉搜索树 (25 分)
本题要求实现函数,判断给定二叉树是否二叉搜索树。函数接口定义:bool IsBST ( BinTree T );其中BinTree结构定义如下:typedef struct TNode *Position;typedef Position BinTree;struct TNode{ ElementType Data; BinTree Left; BinTree Right;};函数IsBST须判断给定的T是否二叉搜索树,即满足如下定义的二叉树:定义:一个二叉搜索原创 2021-04-11 10:40:00 · 426 阅读 · 0 评论 -
PTA浙大版《数据结构(第2版)》题目集 习题3.14 另类堆栈 (15 分)
在栈的顺序存储实现中,另有一种方法是将Top定义为栈顶的上一个位置。请编写程序实现这种定义下堆栈的入栈、出栈操作。如何判断堆栈为空或者满?函数接口定义:bool Push( Stack S, ElementType X );ElementType Pop( Stack S );其中Stack结构定义如下:typedef int Position;typedef struct SNode *PtrToSNode;struct SNode { ElementType *Data; /*原创 2021-04-11 07:50:05 · 410 阅读 · 0 评论 -
PTA 浙大版《数据结构(第2版)》题目集 习题3.13 双端队列 (25 分)
双端队列(deque,即double-ended queue的缩写)是一种具有队列和栈性质的数据结构,即可以(也只能)在线性表的两端进行插入和删除。若以顺序存储方式实现双端队列,请编写例程实现下列操作:Push(X,D):将元素X插入到双端队列D的头;Pop(D):删除双端队列D的头元素,并返回;Inject(X,D):将元素X插入到双端队列D的尾部;Eject(D):删除双端队列D的尾部元素,并返回。函数接口定义:bool Push( ElementType X, Deque D );Ele原创 2021-04-10 22:57:10 · 506 阅读 · 5 评论 -
PTA 浙大版《数据结构(第2版)》题目集 习题3.12 另类循环队列 (20 分)
如果用一个循环数组表示队列,并且只设队列头指针Front,不设尾指针Rear,而是另设Count记录队列中元素个数。请编写算法实现队列的入队和出队操作。函数接口定义:bool AddQ( Queue Q, ElementType X );ElementType DeleteQ( Queue Q );其中Queue结构定义如下:typedef int Position;typedef struct QNode *PtrToQNode;struct QNode { ElementType原创 2021-04-10 10:39:12 · 775 阅读 · 0 评论 -
PTA 浙大版《数据结构(第2版)》题目集 习题3.5 求链表的倒数第m个元素 (20 分)
请设计时间和空间上都尽可能高效的算法,在不改变链表的前提下,求链式存储的线性表的倒数第m(>0)个元素。函数接口定义:ElementType Find( List L, int m );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */};typedef PtrToNode L原创 2021-04-10 08:54:53 · 705 阅读 · 0 评论 -
PTA 浙大版《数据结构(第2版)》题目集 习题3.3 线性表元素的区间删除 (20 分)
给定一个顺序存储的线性表,请设计一个函数删除所有值大于min而且小于max的元素。删除后表中剩余元素保持顺序存储,并且相对位置不能改变。函数接口定义:List Delete( List L, ElementType minD, ElementType maxD );其中List结构定义如下:typedef int Position;typedef struct LNode List;struct LNode {ElementType Data[MAXSIZE];Position Last;原创 2021-04-09 22:51:58 · 704 阅读 · 0 评论