
浙大版《数据结构(第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 · 315 阅读 · 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 · 1714 阅读 · 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 · 1862 阅读 · 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 · 4113 阅读 · 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 · 1507 阅读 · 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 · 819 阅读 · 0 评论 -
习题2.7 弹球距离 (15分)
设有一个球从高度为h米的地方落下,碰到地面后又弹到高度为原来p倍的位置,然后又落下,再弹起,再落下…。请编写函数求初始高度为h的球下落后到基本停下来(高度小于给定阈值TOL)时在空中所经过的路程总和。 函数接口定义: double dist( double h, double p ); 其中h是球的初始高度,p是球弹起高度与弹起前落下高度的比值;函数dist要返回球下落后到基本停下...原创 2020-03-08 07:22:28 · 499 阅读 · 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 · 373 阅读 · 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 · 254 阅读 · 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 · 2808 阅读 · 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 · 831 阅读 · 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 · 774 阅读 · 0 评论