ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:39.59KB ,
资源ID:10856504      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-10856504.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(程序员习题.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

程序员习题.docx

1、程序员习题程序员习题1)经过以下栈运算后,x的值是_。InitStack(s); Push(s,a); Push(s,b); Pop(s,x); GetTop(s,x);文档收集自网络,仅用于个人学习A. a B. bC. 1 D. 02) 经过以下栈运算后,StackEmpty(s)的值是_。 InitStack(s); Push(s,a); Push(s,b); Pop(s,x); Pop(s,y);文档收集自网络,仅用于个人学习 A. a B. b C. 1 D. 03) 设一个栈的输入序列为A,B,C,D, 则借助一个栈所得到的输出序列不可能是_.文档收集自网络,仅用于个人学习 A).

2、 A.B.C.D B) D.C.B.A C). A.C.D.B D). D.A.B.C4) 一个栈的进栈序列是a.b.c.d.e, 则栈的不可能的输出序列是_A.edcb B.decbaC.dceab D. abcde5) 已知一个栈的进栈序列是 1,2,3,n,其输出序列的第一个元素是i,则第j个出栈元素是_文档收集自网络,仅用于个人学习 A.jB.n-IC.z-i+1 D.不确定6) 已知一个栈的进栈序列是1,2,3,.,n, 其输出序列是p1,p2,pn, 若p1=n, 则p1的值是_.文档收集自网络,仅用于个人学习 A.IBn-ICn-i+1 D 不确定7) 设n个元素的进栈序列为p1

3、,p2,p3,pn, 其输出序列为1,2,3,n, 若pn=1,则pi(1=i1)的递归出口是_.A.f(1)=0 B.f(1)=1C.f(0)=1 D.f(n)=n 15) 经过以下队列运算后,队头的元素是_.文档收集自网络,仅用于个人学习 InitQuue(qu); enQueue(qu,a); enQueue(qu,b); enQueue(qu,c); deQueue(qu);文档收集自网络,仅用于个人学习A.aB.bC.1 D.016) 元素A,B,C,D顺序连续进入队列qu后,队头元素是_,队尾元素是_.文档收集自网络,仅用于个人学习A.A B.B C.C D.D17) 一个队列的入

4、列序列为1234,则队列可能的输出序列是_.A.4321B.1234C.1432 D. 3241 18) 队列是一种具有_特性的线性表。19)顺序队和连队的区别仅在于_的不同。20)如果队列的最大长度难以估计,则最好使用_.21)环形队列qu的队满条件是_. A. (qu. rear+1)%maxSize = (qu.front+1)%MaxSize B. (qu. rear+1)%MaxSize=qu.front+1; C. (qu.rear+1)%MaxSize=qu.front+1; D. qu.rear=qu.front22) 最适合用作列队的列表是_.A. 带队首指针和队尾指针的循环

5、单连表B. 带队首指针和队尾指针的非循环单链表C. 只带队首指针的循环单链表D. 只带队尾指针的循环单链表23)最不合适用做链队的链表是A.只带队首指针的非循环双链表。B只带队首指针的循环双链表。C.只带队尾指针的循环双链表。D.只带队尾指针的循环单链表。24).假设一个练队的队尾和队首指针分别为rear front则判断队空的条件是A front=rearB front!=NULLC rear!=NULLD front=NULL25)用单链表表示的链队的队头在链表的_位置A.链头 B链尾C链中D以上都可以26)用单链表表示的链队的队尾在链表的_位置A. 链头 C链中B链尾D以上都可以27)对

6、于链队在进行删除操作时A 仅修改头指针B仅修改尾指针C 头尾指针都要修改D头尾指针可能都要修改填空题1若用带表头结点的单链表表示则队列为空的标志是_.2若用不带表头结点的单链表表示则创建一空队列的所要执行的操作是_.3若用带头结点的单链表表示则创建一空队列的所要执行的操作是_.4已知链队的头尾指针分别是f和r则将值x如队的操作是P=(QNode *)malloc (sizeof(QNode);p-data=x; _;_;_;文档收集自网络,仅用于个人学习5表达式23+(12*3-2)/4+34*5/7)+108/9的后缀表达式是_文档收集自网络,仅用于个人学习6;程序:1有如下算法:Void

7、print (int w)Int i;If (w!=0)Print(w-1);For (i=1;i0) return_;Else _;4.递归函数int dec(int a, int n)判断数组a的前n个元素是否递增, 递增返回0;文档收集自网络,仅用于个人学习 int dec(int a, int n)if(n=1)_;If(a0a1)return 0;Else _;5.递归函数invert (int a, int k)将指定数组中的前k 个元素逆置Void invert (int a, int k)int t;If(_)invert(_);T=a0;A0=ak-1;ak-1=t; 6.i

8、nt dec(int n)的功能是计算n!.如调用dec(6)后函数的反回值是120 int dec(int n)if (n写出下列程序字段的输出结果(栈的元素类型SElemType为char)Void main()Stack S;Char x,y;InitStack(S);X=c;y=k;Push(S,x); push(S,a); push(S,y);Pop(S,x); push(S,t); push(S,x);Pop(S,x); push(S,s);While(!StackEmty(S)pop(S,y);printf(y);Printf(x);2简述以下算法的功能(栈的元素类型SElemT

9、ype为int)Status algo2(Stack S,int e)Stack T;int d;InitStack(T);While(!StackEmpty(S)pop(S,d);If(d!=e)push(T,d);While(!StackEmpty(S)pop(T,d);Push(S,d);3写出以下程序段的输出结果(队列中元素类型QElemType为char)Void main()Queue Q; InitQueue(Q);Char x=e,y=c;EnQueue(Q,h);EnQueue(Q,r);EnQueue(Q,y);DeQueue(Q,x);EnQueue(Q,x);DeQue

10、ue(Q,x);EnQueue(Q,a);While(!QueueEmpty(Q)DeQueue(Q,y);Printf(y);Printf(x);4函数MultibaseOutput(long n,int B)的功能是:将一个无符号十进制数n转换成B(2=Belem=(int * )malloc(n*sizeof(int);If(S-elem=NULL) return -1;S-max=n;_=0;Return 0; Int push(Stack *S,int item )/*将整数item压入栈中*/if(S-top=S-max)printf(*Stack is full!n);Retur

11、n -1;_=irem;Return 0;Int StackEmpty(Stack S)Return(!S.top)?1:0;/*判断栈是否为空*/Int pop(Stack *S)栈顶元素出栈*/If(S-top)printf(“pop an empty stack!n”);Return -1;Return _;Void MultibaseOutput(long n,int B)Int m;Stack S;If(InitStack(&S,MAXSIZE)printf(“Failure!n”);Return;Doif(push(&S,_)printf(“Failure!n”);Return;N

12、=_;while(n!=0);While(!StackEmpty(S)/*输出B进制数*/m=pop(&S);If(mt时返回正数,s=t时返回0,st时返回负数文档收集自网络,仅用于个人学习 /StrCompare13.编写算法,实现串的基本操作Replace(char *S,T,V). bool repl(SString &News, SString S, SString T,SString V)文档收集自网络,仅用于个人学习 /repl14.编写算法,求串s所含不同字符的总数和每种字符的个数。15.假设以结点大小1(且附设头结点)的连表结构表示串,试编写实现下列六种串的基本操作: Str

13、Assign,StrCopy,StrCompare,StrLenght,ConCat和SubString的函数.文档收集自网络,仅用于个人学习62 典型例题解析61一棵完全二叉树第6层有7个结点,则共有()个结点,其度为1的结点有()个,度为0的结点有()个,编号最大的非叶子结点是(),编号最小的叶子结点是()。文档收集自网络,仅用于个人学习62 试回答下面的问题:已知一棵满二叉树的结点个数为2040的数,试问此二叉树的叶子结点有多少个?有n个结点的二叉树,已知叶子结点的个数为n0,写出求度为1的结点的个数n1计算公式;若此数是高度为h的完全二叉数,写出n为最小的公式;若二叉数中仅有度为0和度

14、为2的结点,写出该二叉数结点个数n的公式。(3)已知一棵度位m的树中有n1 个度为1的结点,n2个度为2的结点,,Nm个度为m的结点,问该树有多少个叶子结点?文档收集自网络,仅用于个人学习63.已知有一棵二叉树的中序遍历序列为DBEHAFCIG,后序遍历是DHEBFIGCA,试画出该二叉树,并给出该二叉树的的前序序列。文档收集自网络,仅用于个人学习65设二叉树用二叉链表表示,设计算法:(1)求二叉树的高度;(2)求二叉树的度为2的结点数;66试编写算法判断二叉树T是否是完全二叉树;(1)若给定的二叉树采用顺序表作为存储结构;(2)若给定的二叉树采用二叉链表作为存储结构。67对以二叉链表存储的非

15、空而叉树,从右向左依次释放所有的叶子结点,释放的同时,把结点存放到一个数组中。要求:文档收集自网络,仅用于个人学习(1)用文字写出实现上述过程的基本思想。(2)写出算法,68试以二叉树链表的存储结构,编写按层次顺序遍历二叉树的算法。69假设二叉树以二叉链表为存储结构,编写求任一指定结点所在的层次。611设计算法,统计一棵二叉树中所有结点的数目及非叶子结点的数目。614已知以二叉链表表示的二叉树中有值为x,y,z的三个结点,试编写算法判断x是否为y和z的共同祖先。文档收集自网络,仅用于个人学习616假设二叉树的存储结构为二叉链表,试编写C语言的函数,其功能是交换二叉树中各结点的左子树和右子树。文

16、档收集自网络,仅用于个人学习618已知一棵二叉树用二叉链表存储,root指向根结点,p指向树中任何一结点。试编写算法输出从rootp路径上的结点。文档收集自网络,仅用于个人学习620编写一个算法,利用叶子结点中的空指针域,将所有叶子结点链接为一个带有头结点的单链表,算法返回头结点的地址。文档收集自网络,仅用于个人学习621假设二叉树采用二叉链表存储结构,设计一个非递归算法求二叉树的高度。6.3 习题及参考答案1.已知一棵树边的集合为,文档收集自网络,仅用于个人学习请画出这棵树,并回答下列问题: (1)哪个是根结点? (2)哪些是叶子结点? (3)哪些是结点G的双亲? (4)哪些是结点G的祖先?

17、 (5)哪些是结点G的孩子? (6)哪些是结点E的子孙? (7)哪些是结点E的兄弟?哪些是结点F的兄弟? (8)结点B和N的层次号分别是什么? (9)树的深度是多少? (10)以结点C为根的子树的深度是多少?2.一棵度为2的树与一棵二叉树有何区别?3.试分别画出具有3个结点的树和3个结点的二叉树的所有不同的形态.4.一棵深度为H的满K叉树有如下性质:第H层上的结点都是叶子结点,其余各层上每个结点都有k棵非空子树,如果按层次顺序从1开始全部结点编号,问:文档收集自网络,仅用于个人学习 (1)各层的结点数目是多少? (2)编号为p的结点的父结点(若存在)的编号是多少? (3)编号为p的第i的儿子结

18、点(若存在)的编号是多少?(4)编号为p的结点有右兄弟的条件是什么?其右兄弟的编号是多少?5.已知一棵度为k的树中有n1个度为1的结点,n2个度为2的结点,.nk个度为k的结点,问该树中有多少个叶子结点?文档收集自网络,仅用于个人学习6.已知在一棵含有n个结点的树中,只有度为k的分支结点和度为0的叶子结点,试求该树含有叶子结点的数目.文档收集自网络,仅用于个人学习7.一棵含有n个结点k叉树,可能达到的最大深度和最小深度各为多少?9对题3所得各种形态的二叉树,分别写出前序,中序和后序遍历的序列。10假设n和m为二叉树中两结点,有“1”,“0”或“(分别表示肯定,恰恰相反或者不一定)填写下表。文档

19、收集自网络,仅用于个人学习答问已知前序遍历时n在m前?中序遍历n在m前?后序遍历时n在m前?n 在m 左方n 在m 右方n 是m 祖先n 是m 子孙11找出所有满足下列条件的二叉树:(1)他们在先序遍历和中序遍历时,得到的结点访问序列相同;(2)他们在后序遍历和中序遍历时,得到的结点访问序列相同;(3)他们在先序遍历和后序遍历时,得到的结点访问序列相同;12请对下图所示二叉树进行后序线索化,为每个空指针建立相应的前驱或后继线索。 19.画出和下列已知序列对应的树T:树的先根次序访问序列为GFKDAIEBCHJ;树的后根次序访问序列为DIAEKFCJHBG。21.假设一棵二叉树的先序序列为EBA

20、DCFHGIKJ和中序序列为ABCDEFGHIJK.请画出该树.22.假设一棵二叉树的中序序列为DCBGEAHFIJK和后序序列为DCEGBFHKJIA.请画出该树.29.编写递归算法,在二叉树中求位于先序序列中第K个位置的结点的值.30.编写递归算法,计算二叉树中叶子结点的数目.30.编写递归算法,将二叉树中所有结点的左,右子树相互交换.32.编写递归算法:求二叉树中以元素值为X的结点为根的子树的深度;33.编写递归算法:对于二叉树中每一个元素值为X的结点,删去以它为根的子树,并释放相应的空间.34.编写复制一棵二叉树的非递归算法.35.编写按层次顺序(同一层从左至右)遍历二叉树的算法.36.在二叉树中,*root为根结点,*p和*q为二叉树中两个结点,试编写求距离它最近的共同祖先的算法.文档收集自网络,仅用于个人学习41.试编写算法,求给定二叉树上从根到叶子结点的一条其路径长度等于树的深度减一的路径(即列出从根结点到该叶子结点的结点序列),若这样的路径存在多条,则输出路径终点文档收集自网络,仅用于个人学习 (叶子结点) 在最左的一条.42.已知一棵完全二叉树存于顺序表sa中,sa.elemsa.last中存放各结点的数据元素.试编写算法由此顺序存储结构建立该二叉树的二叉链表.43.为二叉链表的结点增加D

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2