浙大版《数据结构(第2版)》题目集
dpter
终有一日,繁花似锦。
展开
-
习题4.3 是否二叉搜索树 (25分)
本题要求实现函数,判断给定二叉树是否二叉搜索树。函数接口定义:bool IsBST ( BinTree T );其中BinTree结构定义如下:typedef struct TNode *Position;typedef Position BinTree;struct TNode{ ElementType Data; BinTree Left; ...原创 2020-03-09 07:49:24 · 282 阅读 · 0 评论 -
习题3.14 另类堆栈 (15分)
在栈的顺序存储实现中,另有一种方法是将Top定义为栈顶的上一个位置。请编写程序实现这种定义下堆栈的入栈、出栈操作。如何判断堆栈为空或者满?函数接口定义:bool Push( Stack S, ElementType X );ElementType Pop( Stack S );其中Stack结构定义如下:typedef int Position;typedef st...原创 2020-03-09 07:48:06 · 1640 阅读 · 2 评论 -
习题3.13 双端队列 (25分)
双端队列(deque,即double-ended queue的缩写)是一种具有队列和栈性质的数据结构,即可以(也只能)在线性表的两端进行插入和删除。若以顺序存储方式实现双端队列,请编写例程实现下列操作:Push(X,D):将元素X插入到双端队列D的头; Pop(D):删除双端队列D的头元素,并返回; Inject(X,D):将元素X插入到双端队列D的尾部; Eject(D):删除双端队列...原创 2020-03-09 07:46:57 · 1720 阅读 · 2 评论 -
习题3.12 另类循环队列 (20分)
如果用一个循环数组表示队列,并且只设队列头指针Front,不设尾指针Rear,而是另设Count记录队列中元素个数。请编写算法实现队列的入队和出队操作。函数接口定义:bool AddQ( Queue Q, ElementType X );ElementType DeleteQ( Queue Q );其中Queue结构定义如下:typedef int Position;...原创 2020-03-09 07:45:35 · 2976 阅读 · 2 评论 -
习题3.5 求链表的倒数第m个元素 (20分)
请设计时间和空间上都尽可能高效的算法,在不改变链表的前提下,求链式存储的线性表的倒数第m(>0)个元素。函数接口定义:ElementType Find( List L, int m );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据...原创 2020-03-09 07:44:42 · 1317 阅读 · 0 评论 -
习题3.3 线性表元素的区间删除 (20分)
给定一个顺序存储的线性表,请设计一个函数删除所有值大于min而且小于max的元素。删除后表中剩余元素保持顺序存储,并且相对位置不能改变。函数接口定义:List Delete( List L, ElementType minD, ElementType maxD );其中List结构定义如下:typedef int Position;typedef struct LNo...原创 2020-03-09 06:49:32 · 784 阅读 · 0 评论 -
习题2.7 弹球距离 (15分)
设有一个球从高度为h米的地方落下,碰到地面后又弹到高度为原来p倍的位置,然后又落下,再弹起,再落下…。请编写函数求初始高度为h的球下落后到基本停下来(高度小于给定阈值TOL)时在空中所经过的路程总和。函数接口定义:double dist( double h, double p );其中h是球的初始高度,p是球弹起高度与弹起前落下高度的比值;函数dist要返回球下落后到基本停下...原创 2020-03-08 07:22:28 · 470 阅读 · 0 评论 -
习题2.6 递归求简单交错幂级数的部分和 (15分)
本题要求实现一个函数,计算下列简单交错幂级数的部分和:f(x,n)=x−x2+x3−x4+⋯+(−1)n−1xn函数接口定义:double fn( double x, int n );其中题目保证传入的n是正整数,并且输入输出都在双精度范围内。函数fn应返回上述级数的部分和。建议尝试用递归实现。裁判测试程序样例:#include &...原创 2020-03-08 07:21:37 · 341 阅读 · 0 评论 -
习题2.5 两个有序链表序列的合并 (15分)
本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。函数接口定义:List Merge( List L1, List L2 );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode ...原创 2020-03-08 07:20:26 · 235 阅读 · 0 评论 -
习题2.4 递增的整数序列链表的插入 (15分)
本题要求实现一个函数,在递增的整数序列链表(带头结点)中插入一个新整数,并保持该序列的有序性。函数接口定义:List Insert( List L, ElementType X );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */ ...原创 2020-03-08 07:19:33 · 2369 阅读 · 0 评论 -
习题1.9 有序数组的插入 (20分)
本题要求将任一给定元素插入从大到小排好序的数组中合适的位置,以保持结果依然有序。函数接口定义:bool Insert( List L, ElementType X );其中List结构定义如下:typedef int Position;typedef struct LNode *List;struct LNode { ElementType Data[MAX...原创 2020-03-08 07:18:27 · 810 阅读 · 0 评论 -
习题1.8 二分查找 (20分)
本题要求实现二分查找算法。函数接口定义:Position BinarySearch( List L, ElementType X );其中List结构定义如下:typedef int Position;typedef struct LNode *List;struct LNode { ElementType Data[MAXSIZE]; Positi...原创 2020-03-08 07:17:19 · 746 阅读 · 0 评论