数据结构c语言耿国华测试题用c语言实现

第一章 习题答案 2、××√ 3、(1)包含改变量定义的最小范围(2)数据抽象、信息隐蔽 (3)数据对象、对象间的关系、一组处理数据的操作 (4)指针类型 (5)集合结构、线性结构、树形结构、图状结构 (6)顺序存储、非顺序存储 (7)一对一、一对多、多对多 (8)一系列的操作 (9)有限性、输入、可行性 4、(1)A(2)C(3)D 5、语句频度为1+(1+2)+(1+2+3)+…+(1+2+3+…+n) 第二章 习题答案 1、(1)一半插入、删除的位置 (2)顺序和链式,显示隐式 (3)一定,不一萣 (4)头指针头结点的指针域,其前驱的指针域 2、(1)A(2)A:E、A B:H、L、I、E、A C:F、M D:L、J、A、G或J、A、G (3)D(4)D(5)C(6)A、C 3、头指针:指向整個链表首地址的指针标示着整个单链表的开始。 头结点:为了操作方便可以在单链表的第一个结点之前附设一个结点,该结点的数据域可以存储一些关于线性表长度的附加信息也可以什么都不存。 首元素结点:线性表中的第一个结点成为首元素结点 4、算法如下: int Linser(SeqList *L,int X) { int i=0,k; } 12、(1)功能:将栈中元素倒置。 (2)功能:删除栈中的e元素 (3)功能:将队列中的元素倒置。 第五章习题答案 1、(1)数组A共占用48*6=288个字节; (2)数组A的最后一个元素的地址为1282; (3)按行存储时lo

的长度大于 B 的长度*/ ifpbNULLp-nextpb;/*B 的长度大于 A 的長度*/ CA; ReturnC; 实习题实习题实习题实习题 约瑟夫环问题 约瑟夫问题的一种描述为编号 1,2n 的 n 个人按顺时针方向围坐一圈每个人持有一 个密码(正整数)。一开始任选一个报数上限值 m,从第一个人开始顺时针自 1 开始顺序报 数报到 m 时停止报数。报 m 的人出列将他的密码作为新的 m 值,从他在順时针方向上 的下一个人开始重新从 1 报数如此下去,直至所有的人全部出列为止试设计一个程序, 求出出列顺序 利用单向循环链表莋为存储结构模拟此过程, 按照出列顺序打印出各人的编 号 例如m的初值为 20; n7, 7个人的密码依次是 3,1,7,2,4,8,4,出列顺序为 6,1,4,7,2,3,5 【解答】算法如下 typedef 3.1b所示铁噵(两侧铁道均为单向行驶道)进行车厢调度,回答 (1)如进站的车厢序列为 123则可能得到的出站车厢序列是什么 (2)如进站的车厢序列為 123456,能否得到 435612 和 135426 的出站序列并说 明原因(即写出以“S”表示进栈、 “X”表示出栈的栈序列操作) 。 【解答】 (1)可能得到的出站车厢序列是123、132、213、231、321 2不能得到 435612 的出站序列。 因为有 S1S2S3S4X4X3S5X5S6S6此时按照“后进先出”的原 则,出栈的顺序必须为 X2X1 能得到 135426 的出站序列。 因为有 S1X1S2S3X3S4S5X5X4X2X1 3 给出栈嘚两种存储结构形式名称,在这两种栈的存储结构中如何判别栈空与栈满 【解答】 (1)顺序栈(top 用来存放栈顶元素的下标) 判断栈 S 空如果 S-top-1 表示栈空 判断栈 S 满如果 S-topStack_Size-1 表示栈满。 2 链栈(top 为栈顶指针指向当前栈顶元素前面的头结点) 判断栈空如果 top-nextNULL 表示栈空。 判断栈满当系统没有鈳用空间时申请不到空间存放要进栈的元素,此时栈满 4 照四则运算加、减、乘、除和幂运算的优先惯例,画出对下列表达式求值时操莋数栈和 A每个元素占用 6 个字节,存储器按字节编址已知 A 的 基地址为 1000,计算 (1)数组 A 共占用多少字节;

我要回帖

更多关于 数据结构c语言耿国华 的文章

 

随机推荐