数据结构算法设计题复习题

合集下载

数据结构与算法复习题

数据结构与算法复习题

《数据结构与算法》一、选择题1. 组成数据的基本单位是( )。

(A) 数据项 (B)数据类型 (C)数据元素 (D)数据变量2. 线性表的链接实现有利于( )运算。

(A) 插入 (B)读表元 (C)查找 (D)定位3. 串的逻辑结构与( )的逻辑结构不同。

(A) 线性表 (B)栈 (C)队列 (D)树4. 二叉树第i(i≥1)层最多有( )个结点。

(A) 2i (B)2i (C) 2i-1 (D) 2i-15. 设单链表中指针p指向结点A,若要删除A后结点(若存在),则需要修改指针的操作为( )(A) p->next = p->next->next (B)p=p->next(C)p=p->next->next (D)p->next=p6、栈和队列的共同特点是( )。

(A)只允许在端点处插入和删除元素 (B)都是先进后出(C)都是先进先出 (D)没有共同点7、二叉树的第k层的结点数最多为( ).(A)2k+1 (B)2K+1 (C)2K-1(D) 2k-18、设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为()。

(A) BADC (B) BCDA (C) CDAB (D) CBDA9、设某完全无向图中有n个顶点,则该完全无向图中有()条边。

(A) n(n-1)/2 (B) n(n-1) (C) n2 (D) n2-110、下面程序的时间复杂为()for(i=1,s=0; i<=n; i++){t=1;for(j=1;j<=i;j++)t=t*j;s=s+t;}(A) O(n) (B) O(n2) (C) O(nlog2n) (D) O(n3)11、设某强连通图中有n个顶点,则该强连通图中至少有()条边。

(A) n(n-1) (B) n+1 (C) n (D) n(n+1)12、设某有向图的邻接表中有n个表头结点和m个表结点,则该图中有()条有向边。

数据结构与算法复习题库含答案

数据结构与算法复习题库含答案

数据结构与算法复习题库含答案1. 问题描述:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

答案:可以使用哈希表来解决此问题。

首先初始化一个空的哈希表,然后遍历数组中的每个元素。

对于每个元素,首先计算目标值与当前元素的差值,然后在哈希表中查找该差值。

如果找到了该差值,则说明存在两个数的和等于目标值,返回这两个数的下标;否则,将当前元素插入到哈希表中。

时间复杂度为O(n),其中n为数组的长度。

2. 问题描述:给定一个字符串,找出其中不含重复字符的最长子串的长度。

答案:可以使用滑动窗口来解决此问题。

维护一个窗口,其中包含没有重复字符的子串。

遍历字符串中的每个字符,如果该字符不在窗口中,将其加入窗口;如果该字符在窗口中,移动窗口的左边界直到窗口中不包含重复字符。

记录窗口的最大长度。

时间复杂度为O(n),其中n为字符串的长度。

3. 问题描述:给定一个字符串和一个单词列表,找出字符串中可以由单词列表中的单词组成的所有子串的起始位置。

答案:可以使用滑动窗口和哈希表来解决此问题。

首先统计单词列表中每个单词的出现次数。

然后遍历字符串中的每个位置作为子串的起始位置,维护一个滑动窗口。

在窗口中依次取出长度和单词列表中单词总长度相等的子串,在哈希表中统计子串中每个单词出现的次数。

如果窗口中的子串与单词列表中的单词出现次数一致,则记录该子串的起始位置。

时间复杂度为O(n*m),其中n为字符串的长度,m为单词列表中的单词个数。

4. 问题描述:给定一个无序的整数数组,找出其中缺失的第一个正整数。

答案:可以使用原地哈希表来解决此问题。

遍历数组中的每个元素,将每个正整数放到数组中对应的位置上。

遍历数组中的每个元素,如果该位置上的数不等于数组索引加一,则该索引加一即为缺失的第一个正整数。

时间复杂度为O(n),其中n为数组的长度。

5. 问题描述:给定一个字符串s,找到s中最长的回文子串。

答案:可以使用动态规划来解决此问题。

数据结构与算法设计考试试题

数据结构与算法设计考试试题

数据结构与算法设计考试试题一、选择题(共10题,每题2分,共20分)1. 下列哪种数据结构适合用于快速查找一个元素:A. 数组B. 栈C. 队列D. 哈希表2. 在二叉搜索树中,中序遍历可以得到一个有序的序列。

请问下列序列中哪个是中序遍历的结果:A. 2, 4, 6, 8, 10B. 10, 8, 6, 4, 2C. 2, 6, 4, 8, 10D. 6, 8, 4, 10, 23. 下面哪种排序算法的最好情况时间复杂度为O(nlogn):A. 冒泡排序B. 插入排序C. 选择排序D. 归并排序4. 哈希表通过将关键字映射到数组下标的方式来实现快速访问和插入。

请问下列哪种冲突处理方法是哈希表常用的:A. 开放地址法B. 建立链表法C. 折叠法D. 哈希函数法5. 堆排序是一种利用堆这种数据结构进行排序的算法,请问堆排序的时间复杂度是:A. O(n)B. O(nlogn)C. O(n^2)D. O(logn)6. Dijkstra算法是解决什么问题的经典算法:A. 最短路径问题B. 最大流问题C. 最小生成树问题D. 最长公共子序列问题7. 在图的表示中,邻接矩阵适合适用于什么类型的图:A. 稠密图B. 稀疏图C. 有向图D. 无向图8. 下面哪种搜索算法适用于有权图:A. 深度优先搜索B. 广度优先搜索C. Dijkstra算法D. A*算法9. 下面哪种数据结构不是线性结构:A. 数组B. 链表C. 栈D. 树10. 下列哪种数据结构可以实现先进先出的特性:A. 栈B. 队列C. 哈希表D. 树二、填空题(共5题,每题4分,共20分)1. 平衡二叉树的左子树和右子树的高度差不超过____。

2. 快速排序算法的时间复杂度为O(____)。

3. 广度优先搜索算法可以用来求解最____路径问题。

4. 图的最小生成树采用____算法来实现。

5. 哈希表的查找操作的平均时间复杂度为O(____)。

三、问答题(共5题,每题10分,共50分)1. 什么是数据结构?请举例说明一种常见的数据结构。

数据结构复习题及答案5篇

数据结构复习题及答案5篇

数据结构复习题及答案5篇第一篇:数据结构复习题及答案、数据结构复习题及答案中南大学现代远程教育课程考试(专科)复习题及参考答案数据结构一、判断题:1.数组是一种复杂的数据结构,数组元素之间的关系既不是线性的也不是树形的。

()2.链式存储在插人和删除时需要保持物理存储空间的顺序分配,不需要保持数据元素之间的逻辑顺序。

()3.在只有度为0和度为k的结点的k叉树中,设度为0的结点有n0个,度为k的结点有nk个,则有n0=nk+1。

()4.折半搜索只适用于有序表,包括有序的顺序表和有序的链表。

()5.如果两个串含有相同的字符,则这两个串相等。

()6.数组可以看成线性结构的一种推广,因此可以对它进行插入、删除等运算。

()7.在用循环单链表表示的链式队列中,可以不设队头指针,仅在链尾设置队尾指针。

()8.通常递归的算法简单、易懂、容易编写,而且执行的效率也高。

()9.一个广义表的表尾总是一个广义表。

()10.当从一个小根堆(最小堆)中删除一个元素时,需要把堆尾元素填补到堆顶位置,然后再按条件把它逐层向下调整,直到调整到合适位置为止。

()11.对于一棵具有n个结点,其高度为h的二叉树,进行任一种次序遍历的时间复杂度为O(h)。

()12.存储图的邻接矩阵中,邻接矩阵的大小不但与图的顶点个数有关,而且与图的边数也有关。

()13.直接选择排序是一种稳定的排序方法。

()14.闭散列法通常比开散列法时间效率更高。

()15.有n个结点的不同的二叉树有n!棵。

()16.直接选择排序是一种不稳定的排序方法。

()17.在2048个互不相同的关键码中选择最小的5个关键码,用堆排序比用锦标赛排序更快。

()18.当3阶B_树中有255个关键码时,其最大高度(包括失败结点层)不超过8。

()19.一棵3阶B_树是平衡的3路搜索树,反之,一棵平衡的3路搜索树是3阶非B_树。

()20.在用散列表存储关键码集合时,可以用双散列法寻找下一个空桶。

数据结构与算法期末考试复习试题

数据结构与算法期末考试复习试题

《数据结构与算法》复习题一、选择题。

1.在数据结构中,从逻辑上可以把数据结构分为 C 。

A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构2.数据结构在计算机内存中的表示是指 A 。

A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。

A.逻辑 B.存储 C.逻辑和存储 D.物理4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。

A.数据的处理方法 B.数据元素的类型C.数据元素之间的关系 D.数据的存储方法5.在决定选取何种存储结构时,一般不考虑 A 。

A.各结点的值如何 B.结点个数的多少C.对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。

6.以下说法正确的是 D 。

A.数据项是数据的基本单位B.数据元素是数据的最小单位C.数据结构是带结构的数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构7.算法分析的目的是 C ,算法分析的两个主要方面是 A 。

(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进 C.分析算法的易读性和文档性(2)A.空间复杂度和时间复杂度 B.正确性和简明性C.可读性和文档性 D.数据复杂性和程序复杂性8.下面程序段的时间复杂度是 O(n2) 。

s =0;for( I =0; i<n; i++)for(j=0;j<n;j++)s +=B[i][j]; sum = s ;9.下面程序段的时间复杂度是 O(n*m) 。

for( i =0; i<n; i++)for(j=0;j<m;j++)A[i][j] = 0;10.下面程序段的时间复杂度是 O(log3n) 。

i = 0;while(i<=n)i = i * 3;11.在以下的叙述中,正确的是 B 。

数据结构与算法分析_六套期末复习题(含答案)

数据结构与算法分析_六套期末复习题(含答案)

试题一一、单项选择题(每小题2分,共20分)(1)以下数据结构中哪一个是线性结构?()A)有向图B)队列C)线索二叉树D)B树(2)在一个单链表HL中,若要在当前由指针p指向的结点后面插入一个由q指向的结点,则执行如下()语句序列。

A)p=q; p->next=q; B)p->next=q;q->next=p;C)p->next=q->next; p=q; D)q->next=p->next;p->next=q;(3)()不是队列的基本运算。

A)在队列第i个元素之后插入一个元素B)从队头删除一个元素C)判断一个队列是否为空D)读取队头元素的值(4)字符A、B、C依次进入一个栈,按出栈的先后顺序组成不同的字符串,至多可以组成()个不同的字符串。

A)14 B)5 C)6D)8(5)由权值分别为3,8,6,2的叶子生成一棵哈夫曼树,它的带权路径长度为()。

A)11 B)35 C)19 D)53 以下6-8题基于下图:(6)该二叉树结点的前序遍历的序列为()。

A)E、G、F、A、C、D、B B)E、A、G、C、F、B、DC)E、A、C、B、D、G、F D)E、G、A、C、D、F、B(7)该二叉树结点的中序遍历的序列为()。

A)A、B、C、D、E、G、F B)E、A、G、C、F、B、DC)E、A、C、B、D、G、F D)B、D、C、A、F、G、E(8)该二叉树的按层遍历的序列为()。

A)E、G、F、A、C、D、B B)E、A、C、B、D、G、FC)E、A、G、C、F、B、D D)E、G、A、C、D、F、B(9)下面关于图的存储的叙述中正确的是()。

A)用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关B)用邻接表法存储图,占用的存储空间大小与图中边数和结点个数都有关C)用邻接矩阵法存储图,占用的存储空间大小与图中结点个数和边数都有关D)用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关(10)设有关键码序列(q,g,m,z,a,n,p,x,h),下面哪一个序列是从上述序列出发建堆的结果?()A)a,g,h,m,n,p,q,x,z B)a,g,m,h,q,n,p,x,zC)g,m,q,a,n,p,x,h,z D)h,g,m,p,a,n,q,x,z二、(本题8分)对于序列{8,18,6,16,29,28},试写出堆顶元素最小的初始堆。

数据结构复习题(附答案)

数据结构复习题(附答案)

数据结构复习题(附答案)数据结构复习题(附答案)数据结构是计算机科学中非常重要的一门课程,其涉及到对数据的组织、存储和管理方法的研究。

在学习数据结构的过程中,我们通常需要进行大量的练习和复习以加深对各种数据结构和算法的理解。

本文将为大家提供一些数据结构的复习题,并附有详细的答案解析。

一、栈和队列1. 给定一个字符串,判断其中的括号序列是否合法。

例如,"{([])}"是合法的括号序列,而"{[)]}"则是非法的。

答案:使用栈的数据结构可以很方便地解决这个问题。

遍历字符串,遇到左括号就将其入栈,遇到右括号就判断对应的左括号是否与栈顶元素相匹配,如果匹配则将栈顶元素出栈,继续比较下一个字符。

最后,栈为空则表示括号序列合法。

2. 设计一个队列,实现队列的基本操作:入队、出队、获取队头元素和判断队列是否为空。

答案:可以使用一个数组来实现队列,使用两个指针front和rear分别指示队头和队尾的位置。

入队操作时,将元素添加到rear指向的位置,并将rear后移一位;出队操作时,将front后移一位;获取队头元素时,返回front指向的位置的元素;判断队列是否为空可以通过比较front和rear来确定。

3. 反转一个单链表。

答案:使用三个指针prev、curr和next来实现链表的反转。

初始时,将prev指向null,curr指向头节点,next指向curr的下一个节点。

然后,将curr的next指向prev,将prev指向curr,将curr指向next,再将next指向next的下一个节点。

重复这个操作,直到链表反转完成。

4. 判断一个单链表中是否存在环。

答案:使用快慢指针的方法可以判断一个单链表中是否存在环。

如果存在环,那么快指针最终会追上慢指针;如果不存在环,那么快指针最终会达到链表的末尾。

三、树和图5. 给定一个二叉树,编写一个算法来判断它是否是平衡二叉树。

答案:平衡二叉树的定义是指二叉树的每个节点的左子树和右子树的高度差不超过1。

数据结构与算法复习题

数据结构与算法复习题

数据结构与算法复习题数据结构与算法复习题一、基本概念1、数据结构的定义和分类1.1 定义和作用1.2 分类1.3 逻辑结构和物理结构2、算法的定义和特性2.1 定义和作用2.2 特性2.3 时间复杂度和空间复杂度二、线性表1、顺序表1.1 定义和实现方式1.2 基本操作:插入、删除、查找1.3 顺序表的优缺点及适用场景2、链表2.1 定义和实现方式:单链表、双向链表、循环链表2.2 基本操作:插入、删除、查找2.3 链表的优缺点及适用场景3、栈和队列3.1 栈的定义和实现方式3.2 栈的基本操作:入栈、出栈、获取栈顶元素3.3 栈的应用场景3.4 队列的定义和实现方式:顺序队列、链式队列、循环队列3.5 队列的基本操作:入队、出队、获取队头元素3.6 队列的应用场景三、树与二叉树1、树的定义和基本术语1.1 树的定义和特性1.2 树的基本术语:根节点、父节点、子节点、叶子节点1.3 树的表示方法:双亲表示法、孩子表示法、孩子兄弟表示法2、二叉树的定义和性质2.1 二叉树的定义和性质2.2 二叉树的基本术语:根节点、左子树、右子树、叶子节点、深度、高度2.3 二叉树的遍历方式:前序遍历、中序遍历、后序遍历、层序遍历3、二叉搜索树3.1 定义和性质3.2 插入操作3.3 删除操作3.4 查找操作4、平衡二叉树4.1 定义和性质4.2 平衡因子和平衡操作4.3 AVL树和红黑树四、图1、图的定义和基本术语1.1 图的定义和性质1.2 图的基本术语:顶点、边、度、路径、连通图、强连通图2、图的存储结构2.1 邻接矩阵2.2 邻接表2.3 其他存储结构:十字链表、邻接多重表3、图的遍历算法3.1 深度优先搜索(DFS)3.2 广度优先搜索(BFS)4、最短路径算法4.1 Dijkstra算法4.2 Floyd-Warshall算法附件:附件1:数据结构复习总结表格附件2:算法复习题答案解析法律名词及注释:1、数据结构:指的是数据对象及其关系、操作和实现的逻辑结构和存储结构。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

算法设计题1. 设二叉树bt采用二叉链表结构存储。

试设计一个算法输出二叉树中所有非叶子结点,并求出非叶子结点的个数。

【答案】int count=0;void algo2(BTNode *bt){if (bt){if(bt->lchild || bt->rchild){printf(bt->data);count++;}algo2(bt->lchild);algo2(bt->rchild);}}2. 阅读下列函数arrange()int arrange(int a[],int 1,int h,int x){i]上,使所有≥x的元素均落在a[i+1..h]上。

(2)int f(int b[],int n) 或 int f(int b[],int n){ {int p,q; int p,q;p=arrange(b,0,n-1,0); p=arrange(b,0,n-1,1);q= arrange(b,p+1,n-1,1); q= arrange(b,0,p,0);return q-p; return p-q;} }3. 假设线性表以带表头结点的循环单链表表示。

试设计一个算法,在线性表的第k个元素前插入新元素y。

假如表长小于k,则插在表尾。

【答案】void algo1(LNode *h,int k,ElemType y){q=h; P=h->next; j=1;while( p!=h && j<k){q=p; p=p->next; j++;}s=(LNode *)malloc(sizeof(Lnode));s->data=y;q->next=s;s->next=q;}4. 二叉排序树的类型定义如下:typedef struct BSTNode {∥二叉排序树的结点结构int data; ∥数据域struct BSTNode *lchild, *rchild; ∥左、右孩子指针}BSTNode,*BSTree;设计递归算法,统计一棵二叉排序树T中值小于a的结点个数。

【答案】int f34(BSTree root){int count;BSTNode *p;p=root;if ( p && p->data<a) count++;f34(p->lchild);return count;}5. 设二叉树T采用二叉链表结构存储,试设计算法求出二叉树中离根最近的第一个叶子结点。

(注:结点按从上往下,自左至右次序编号)【答案】BTNode * Firstleaf(BTNode *bt){ InitQueue(Q); 已知一棵具有n个结点的完全二叉树被顺序存储在一维数组中,结点为字符类型,编写算法打印出编号为k的结点的双亲和孩子结点。

【答案】int algo2(char bt[],int n,int k){if (k<1||k>n) return 0;if( k==1) printf(“ %c is a root\n”, bt[1]);else printf(“ %c’s parent is %c\n”, bt[k], bt[k/2]);if(2*k<=n) printf(“ %c’s lchild is %c\n”, bt[k], bt[2*k]);else pri ntf(“ %c is not lchild\n”, bt[k]));if(2*k+1<=n) printf(“ %c’s rchild is %c\n”, bt[k], bt[2*k+1]);else printf(“ %c is not rchild\n”, bt[k]));return 1;}7. 编写算法,将非空单链表hb插入到单链表ha的第i(0<i≤表长)个结点前。

【答案】int algo1(LNode *ha, LNode *hb,int i){for(p=hb;p->next; p=p->next);for(j=1,q=ha;j<i; j++) q=q->next;p->next=q->next;q->next=hb->next ;free(hb);}8. 设二叉树T已按完全二叉树的形式存储在顺序表T中,试设计算法根据顺序表T建立该二叉树的二叉链表结构。

顺序表T定义如下:struct tree{int no; /* 结点按完全二叉树的编号*/ElEMTP data; /* 数据域 */}T[N]; /* N为二叉树T的结点数*/【答案】BTNode *creat_tree(struct tree T[N]){ BTNode *p[MAX];t=NULL;for(i=0;i<N;i++){s=(BTNode *)malloc(sizeof(BTNode));s->data=T[i].data;s->lchild=s->rchild=NULL;m=T[i].no; p[m]=s;if(m==1) t=s;else { j=m/2;if(m%2==0) p[j]->lchild=s;else p[j]->rchild=s;}编写算法判断带表头结点的单链表L是否是递增的。

若递增返回1,否则返回0。

【答案】int algo1 (LNode *L){if(!L->next) return 1;p=L->next;while(p->next){if(p->data < p->next->data) p=p->next;else return 0;}return 1;}10. 假设一线性表由Fibonacci数列的前n(n≥3)项构成,试以带表头结点的单链表作该线性表的存储结构,设计算法建立该单链表,且将项数n存储在表头结点中。

Fibonacci数列根据下式求得:1 (n=1)f(n)= 1 (n=2)f(n-2)+f(n-1) (n≥3)【答案】LNode * Creatlist(LNode *h,int n){h=(LNode *)malloc(sizeof(Lnode));h->data=n;h->next=p=(LNode *)malloc(sizeof(Lnode));p->next=q=(LNode *)malloc(sizeof(Lnode));p->data= q->data=1;for(i=3;i<=n;i++){q->next=s=(LNode *)malloc(sizeof(Lnode));s->data=p->data+q->data; s->next=NULL;p=q;q=s;}return h;}11. 设二叉树T采用二叉链表结构存储,数据元素为字符类型。

设计算法将二叉链表中所有data域为小写字母的结点改为大写字母。

【答案】void algo2(BTNode *bt){if (bt){if(bt->data>=’a’&& bt->data<=’z’)bt->data-=32;algo2(bt->lchild);algo2(bt->rchild);}}12. 假设线性表以带表头结点的循环单链表表示。

试设计一个算法,在线性表的第k个元素前插入新元素y。

假如表长小于k,则插在表尾。

【答案】void Insertlist(LNode *h,int k,ElemType y){q=h; P=h->next; j=1;while( p!=h && j<k){q=p; p=p->next; j++;}s=(LNode *)malloc(sizeof(Lnode));s->data=y;q->next=s;s->next=q;}13. 有一带表头结点的单链表,其结点的元素值以非递减有序排列,编写一个算法在该链表中插入一个元素x,使得插入后的单链表仍有序。

【答案】void algo1 (LNode *H, ElemTp x){s=(LNode *) malloc (sizeof(LNode));s->data=x;q=H; p=H->next;while ( p && p->data<=x ){q=p; p=p->next;}s->next=p; q->next=s;}14. 二叉排序树的类型定义如下:typedef struct BSTNode {∥二叉排序树的结点结构int data; ∥数据域struct BSTNode *lchild, *rchild; ∥左、右孩子指针}BSTNode,*BSTree;设计递归算法,统计一棵二叉排序树T中值小于a的结点个数。

【答案】int f34(BSTree root){int count;BSTNode *p;p=root;if ( p && p->data<a) count++;f34(p->lchild);return count;}15. 有一带表头结点的单链表,其结点的data域的类型为字符型,编写一个算法删除该链表中的数字字符。

【答案】void Del_digit (LNode *h){for(p=h;p->next;){q=p->next;if(q->data>=’0’&& q->data <=’9’){p->next=q->next; free(q); }else p=q;}}16. 利用栈的基本运算,编写一个算法,实现将整数转换成二进制数输出。

【答案】void returnDtoO(int num){initStack(s);while(n){ k=n%2;n=n/2;push(s,k);}while(EmptyStack(s)){ pop(s,k);printf(“%d”,k);}}17. 设二叉树T采用二叉链表结构存储,数据元素为int型,试设计一个算法,若结点左孩子的data域的值大于右孩子的data域的值,则交换其左、右子树。

【答案】void algo2(bitreptr bt){bitreptr x;if (bt){if ((bt->lchild && bt->rchild) && (bt->lchild ->data> bt->rchild->data) ) {x= bt->lchild ;bt->lchild= bt->rchild;bt->rchild=x;}algo2(bt->lchild);algo2(bt->rchild);}}18. 设二叉树T采用二叉链表结构存储,试设计算法求出二叉树的深度。

相关文档
最新文档