第一范文网 - 专业文章范例文档资料分享平台

数据结构习题集1

来源:用户分享 时间:2025/5/23 8:26:16 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

{struct node *sublist; char data; }dd;

struct node *link; }NODE;

NODE *creat_GL(char **s) {

NODE *h; char ch; ch=*(*s); (*s)++; if(ch!='\\0') {

h=(NODE*)malloc(sizeof(NODE)); if(ch=='(') {

h->tag=1;

h->dd.sublist=creat_GL(s); } Else {

h->tag=0;

h->dd.data=ch; } } else

h=NULL; ch=*(*s); (*s)++; if(h!=NULL) if(ch==',')

h->link =creat_GL(s); else

h->link=NULL; return(h); }

void prn_GL(NODE *p) {

if(p!=NULL) {

if(p->tag==1) {

printf(\

if(p->dd.sublist ==NULL) printf(\

7

else

prn_GL(p->dd.sublist ); } else

printf(\ if(p->tag==1) printf(\if(p->link!=NULL) {

printf(\

prn_GL(p->link); } } }

NODE *copy_GL(NODE *p) {

NODE *q;

if(p==NULL) return(NULL);

q=(NODE *)malloc(sizeof(NODE)); q->tag=p->tag; if(p->tag)

q->dd.sublist =copy_GL(p->dd.sublist ); else

q->dd.data =p->dd.data; q->link=copy_GL(p->link); return(q); }

NODE *head(NODE *p) /*求表头函数 */ {

return(p->dd.sublist); }

NODE *tail(NODE *p) /*求表尾函数 */ {

return(p->link); }

int sum(NODE *p) /*求原子结点的数据域之和函数 */ { int m,n;

if(p==NULL) return(0); else

{ if(p->tag==0) n=p->dd.data; else

n=sum(p->dd.sublist); if(p->link!=NULL) m=sum(p->link); else m=0;

8

return(n+m); } }

int depth(NODE *p) /*求表的深度函数 */ {

int h,maxdh; NODE *q;

if(p->tag==0) return(0); else

if(p->tag==1&&p->dd.sublist==NULL) return 1; else {

maxdh=0;

while(p!=NULL) {

if(p->tag==0) h=0; else

{q=p->dd.sublist; h=depth(q); }

if(h>maxdh)maxdh=h; p=p->link; }

return(maxdh+1); } }

main() {

NODE *hd,*hc; char s[100],*p; p=gets(s);

hd=creat_GL(&p); prn_GL(head(hd)); prn_GL(tail(hd)); hc=copy_GL(hd); printf(\prn_GL(hc);

printf(\printf(\}

第六章 树

一、选择题

1.在线索化二叉树中,t所指结点没有左子树的充要条件是( )。 A.t-〉left==NULL B.t-〉ltag==1 C.t-〉ltag=1且t-〉left=NULL D.以上都不对

9

2.二叉树按某种顺序线索化后,任一结点均有指向其前趋和后继的线索,这种说法( )。 A.正确 B.错误 C.不同情况下答案不确定

3.二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面,这种说法( )。 A.正确 B.错误 C.不同情况下答案不确定

4.由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树,这种说法( )。 A.正确 B.错误 C.不同情况下答案不确定

5.设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为( )。

A.2h B.2h-1 C.2h+1 D.h+1

6.已知某二叉树的后序遍历序列是dabec。中序遍历序列是debac,它的前序遍历序列是( )。 A.acbed B.decab C.deabc D.cedba 7.如果T2是由有序树T转换而来的二叉树,那么T中结点的前序就是T2中结点的( ) A.前序 B.中序 C.后序 D.层次序

8.某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访问顺序是dgbaechf,则其后序遍历的结点访问顺序是( )。

A.bdgcefha B.gdbecfha C.bdgaechf D.gdbehfca 9.二叉树为二叉排序树的充分必要条件是其任一结点的值均大于其左孩子的值、小于其右孩子的值。这种说法( )。

A.正确 B.错误 C.不同情况下答案不确定 10.按照二叉树的定义,具有3个结点的二叉树有( )种。 A.3 B.4 C.5 D.6 11.在一非空二叉树的中序遍历序列中,根结点的右边( )。 A.只有右子树上的所有结点 B.只有右子树上的部分结点 C.只有左子树上的部分结点 D.只有左子树上的所有结点 12.树最适合用来表示( )。 A.有序数据元素 B.无序数据元素 C.元素之间具有分支层次关系的数据 D.元素之间无联系的数据 13.任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序( )。 A.不发生改变 B.发生改变 C.不能确定 D.以上都不对 14.实现任意二叉树的后序遍历的非递归算法而不使用栈结构,最佳方案是二叉树采用( )存储结构。

A.二叉链表 B.广义表存储结构 C.三叉链表 D.顺序存储结构 15.对一个满二叉树,m个树叶,n个结点,深度为h,则( )。 A.n=h+m B.h+m=2n C.m=h-1 D.n=2h-1 16.如果某二叉树的前序为stuwv,中序为uwtvs,那么该二叉树的后序为( )。 A.uwvts B.vwuts C.wuvts D.wutsv 17.具有五层结点的二叉平衡树至少有( )个结点。 A.10 B.12 C.15 D.17 二、判断题

1.二叉树中任何一个结点的度都是2。( )

2.由二叉树结点的先根序列和后根序列可以唯一地确定一棵二叉树。( ) 3.一棵哈夫曼树中不存在度为1的结点。( )

4.平衡二叉排序树上任何一个结点的左、右子树的高度之差的绝对值不大于2( ) 三、填空题

1.指出树和二叉树的三个主要差别________,________,________。

10

搜索更多关于: 数据结构习题集1 的文档
数据结构习题集1.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c0ogv04h5hp2wkqr4m2h8_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top