西华大学《数据结构》中期试卷答案

合集下载

数据结构期中试题及参考答案

数据结构期中试题及参考答案

}LNode, *LinkList;
阅读算法 f31,并回答问题;
(1)设节点结构为id score next
,成绩链表 A 和 B 如图所示,画
出执行算法 f31(A,B)后节点 A 所指的链表;
A
1 70
2 40
3 90
4 48
5 56
B
2 38
4 65
题 31 图
(2)减速算法 f31 的功能。 Void f31(LinkList A, LinkList B) { LinkList p,q; p = A->next; q = B->next; while (p && q) { if(p->id < q->id) p = p ->next; else if(p->if > q-> id) q =q –>next; else { if (p->score < 60)
I + = j + lt ;
}
}while (i+lt <= ls && j>=0);
Return k;
}

五、算法设计题(本题 14 分) 34.假设线性表采用顺序存储结构,其类型定义如下:
#define ListSize 100 typedef struct{
int data[ListSize]; int length; }SeqList, *Table; 编写算法,将顺序表 L 中所有值为奇数的元素调整到表的前端。
(1)设 n=10,元素
p=8

存储在 sa[p],写出下标 p 的值;
题 3-1 图

数据结构期中笔试题答案

数据结构期中笔试题答案

《数据结构》期中考试题答案一、填空题(20分,每题2分)1.逻辑结构、存储结构2.便于插入和删除操作3.方便运算的实现4.算法执行过程中所需要的基本运算次数5.存储结构6.q.next=p.next ; p.next=q7.递归算法8.抽象类或接口二、选择题(30分,每题2分)AACBB BDDCB AACAC三、问答题(50分,每题10分)1.什么是栈和队列?两者有何异同?答:栈和队列都属于线性表结构,它们是两种特殊的线性表,栈的插入和删除操作都在线性表的一端进行,所以栈的特点是“后进先出”;而队列的插入和删除操作分别在线性表的两端进行,所以队列的特点是“先进先出”。

2.采用顺序存储结构的栈和队列,在进行插入、删除操作时需要移动数据元素吗?为什么?答:采用顺序存储结构的栈和队列,在进行插入、删除操作时不需要移动数据元素,因为栈和队列均不能进行中间插入、删除操作。

3.什么是队列的假溢出?为什么顺序存储结构队列会出现假溢出?怎样解决队列的假溢出问题?链式存储结构队列会出现假溢出吗?答:顺序队列,当入队的元素个数(包括已出队元素)超过数组容量时,队列尾下标越界,数据溢出。

此时,由于之前已有若干元素出队,数组前部已空出许多存储单元,所以,这种溢出并不是因存储空间不够而产生的,称之为假溢出。

顺序队列之所以会产生假溢出现象,是因为顺序队列的存储单元没有重复使用机制。

解决的办法是将顺序队列设计成循环结构。

链式存储结构队列不会出现假溢出。

因为每次元素入队,都要申请新结点,数据不会溢出。

4.答案:(1) (a2, a4, …, ) (2)将单链表中偶数结点位置的元素值写入顺序表list5.数据的存储结构有哪两种,各有什么特点?答:数据存储结构的基本形式有两种:顺序存储结构和链式存储结构。

顺序存储结构使用一组连续的内存单元依次存放数据元素,元素在内存中的物理存储次序与它们的逻辑次序相同。

链式存储结构使用若干地址分散的存储单元存储数据元素,逻辑上相邻的数据元素在物理位置上不一定相邻,数据元素间的关系需要采用附加信息特别指定。

数据结构期中测试题答案

数据结构期中测试题答案
《数据结构》期中测试
班级:
姓名:
学号:
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力通根1保据过护生管高产线中工敷资艺设料高技试中术卷0资配不料置仅试技可卷术以要是解求指决,机吊对组顶电在层气进配设行置备继不进电规行保范空护高载高中与中资带资料负料试荷试卷下卷问高总题中2体2资配,料置而试时且卷,可调需保控要障试在各验最类;大管对限路设度习备内题进来到行确位调保。整机在使组管其高路在中敷正资设常料过工试程况1卷下中安与,全过要,度加并工强且作看尽下护可1都能关可地于以缩管正小路常故高工障中作高资;中料对资试于料卷继试连电卷接保破管护坏口进范处行围理整,高核或中对者资定对料值某试,些卷审异弯核常扁与高度校中固对资定图料盒纸试位,卷置编.工写保况复护进杂层行设防自备腐动与跨处装接理置地,高线尤中弯其资曲要料半避试径免卷标错调高误试等高方,中案要资,求料编技试5写术卷、重交保电要底护气设。装设备管置备4高线动调、中敷作试电资设,高气料技并中课3试术且资件、卷中拒料中管试包绝试调路验含动卷试敷方线作技设案槽,术技以、来术及管避系架免统等不启多必动项要方高案式中;,资对为料整解试套决卷启高突动中然过语停程文机中电。高气因中课此资件,料中电试管力卷壁高电薄中气、资设接料备口试进不卷行严保调等护试问装工题置作,调并合试且理技进利术行用,过管要关线求运敷电行设力高技保中术护资。装料线置试缆做卷敷到技设准术原确指则灵导:活。在。对分对于线于调盒差试处动过,保程当护中不装高同置中电高资压中料回资试路料卷交试技叉卷术时调问,试题应技,采术作用是为金指调属发试隔电人板机员进一,行变需隔压要开器在处组事理在前;发掌同生握一内图线部纸槽故资内障料,时、强,设电需备回要制路进造须行厂同外家时部出切电具断源高习高中题中资电资料源料试,试卷线卷试缆切验敷除报设从告完而与毕采相,用关要高技进中术行资资检料料查试,和卷并检主且测要了处保解理护现。装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

数据结构考试试题库含答案解析

数据结构考试试题库含答案解析

数据构造习题集含答案目录目录 (1)选择题 (2)第一章绪论 (2)第二章线性表 (4)第三章栈和队列 (6)第四章串 (7)第五章数组和广义表 (8)第六章树和二叉树 (8)第七章图 (11)第八章查找 (13)第九章排序 (14)简答题 (19)第一章绪论 (19)第二章线性表 (24)第三章栈和队列 (26)第四章串 (28)第五章数组和广义表 (29)第六章树和二叉树 (31)第七章图 (36)第八章查找 (38)第九章排序 (39)编程题 (41)第一章绪论 (41)第二章线性表 (41)第三章栈和队列 (52)第四章串 (52)第五章数组和广义表 (52)第六章树和二叉树 (52)第七章图 (52)第八章查找 (52)第九章排序 (57)选择题第一章绪论1.数据构造这门学科是针对什么问题而产生的?〔A〕A、针对非数值计算的程序设计问题B、针对数值计算的程序设计问题C、数值计算与非数值计算的问题都针对D、两者都不针对2.数据构造这门学科的研究内容下面选项最准确的是〔D〕A、研究数据对象和数据之间的关系B、研究数据对象C、研究数据对象和数据的操作D、研究数据对象、数据之间的关系和操作3.某班级的学生成绩表中查得X三同学的各科成绩记录,其中数据构造考了90分,那么下面关于数据对象、数据元素、数据项描述正确的选项是〔C〕A、某班级的学生成绩表是数据元素,90分是数据项B、某班级的学生成绩表是数据对象,90分是数据元素C、某班级的学生成绩表是数据对象,90分是数据项D、某班级的学生成绩表是数据元素,90分是数据元素4.*数据构造是指〔A〕。

A、数据元素的组织形式B、数据类型C、数据存储构造D、数据定义5.数据在计算机存储器内表示时,物理地址与逻辑地址不一样,称之为〔C〕。

A、存储构造B、逻辑构造C、链式存储构造D、顺序存储构造6.算法分析的目的是〔C〕A、找出数据的合理性B、研究算法中的输入和输出关系C、分析算法效率以求改良D、分析算法的易懂性和文档型性7.算法分析的主要方法〔A〕。

西华大学《数据结构》试卷A

西华大学《数据结构》试卷A

西华大学课程考试试题卷(A 卷)试卷编号:(2008至2009学年第2学期)课程名称:数据结构考试时间:110分钟课程代码:8401801试卷总分:100分考试形式:闭卷学生自带普通计算器:否一、单项选择题(本大题共20个小题,每小题2分,共40分)1.如果在数据结构中每个数据元素只可能有一个直接前驱,但可有多个直接后继,则该结构是(c )A.栈 B.队列 C.树 D.图2.在数据结构中,从逻辑上可以把数据结构分成(b )。

A.动态结构和静态结构B.线性结构和非线性结构C.紧凑结构和非紧凑结构D.内部结构和外部结构3.算法分析的两个主要方面是(a )。

A.空间复杂性和时间复杂性 B.正确性和简明性C.可读性和文档性 D.数据复杂性和程序复杂性4.在以下的叙述中,正确的是(c )。

A.线性表的顺序存储结构优于链表存储结构B.线性表的顺序存储结构适用于频繁插入/删除数据元素的情况C.线性表的链表存储结构适用于频繁插入/删除数据元素的情况D.线性表的链表存储结构优于顺序存储结构5.非空的循环单链表head 的尾结点(由p 所指向)满足(c )。

A.p->next==NULL B.p==NULL C.p->next==head D.p==head 6.栈和队列的共同点是(c )。

A.都是先进先出 B.都是先进后出C.只允许在端点处插入和删除元素 D.没有共同点7.设若入栈序列的元素顺序为X,Y,Z,判断下列哪一个出栈序列是不可能的。

(c )。

A.XYZ B.YZX C.ZXY D.ZYX 8.设数组Data[0..m-1]作为循环队列SQ 的存储空间,front 为队头指针,rear 为队尾指针,则执行出队操作的语句为(b )。

A.front=front+1 B.front=(front+1)%m C.rear=rear+1 D.rear=(rear+1)%m 9.深度为5的二叉树至多有(d )个结点。

数据结试题及答案

数据结试题及答案

数据结试题及答案数据结构试题及答案1. 单项选择题(1) 在数据结构中,线性表的顺序存储结构通常使用()。

A. 链表B. 栈C. 队列D. 数组答案:D(2) 下列关于二叉树的描述中,不正确的是()。

A. 二叉树是有序树B. 二叉树的第i层至多有2^(i-1)个节点C. 任意非空二叉树的第i层至多有2^(i-1)个节点D. 任意非空二叉树的第i层至少有2^(i-1)个节点答案:D2. 多项选择题(1) 下列关于图的描述中,正确的是()。

A. 图的边有方向B. 图的边没有方向C. 图的顶点之间可以有零条或多条边D. 图的顶点之间至多有一条边答案:B, C(2) 在排序算法中,时间复杂度为O(nlogn)的算法包括()。

A. 快速排序B. 归并排序C. 冒泡排序D. 堆排序答案:A, B, D3. 简答题(1) 请简述栈和队列的区别。

答案:栈是一种后进先出(LIFO)的数据结构,而队列是一种先进先出(FIFO)的数据结构。

(2) 什么是递归?请举例说明。

答案:递归是一种方法,它允许函数调用自身来解决问题。

例如,计算阶乘函数n!时,可以定义为n! = n * (n-1)!,当n=1时,1!=1。

4. 计算题(1) 给定一个链表,其节点定义如下:struct ListNode {int val;ListNode *next;};请写出一个函数,反转链表,并返回新的链表头节点。

答案:ListNode* reverseList(ListNode* head) {ListNode* prev = NULL;ListNode* curr = head;ListNode* next = NULL;while (curr != NULL) {next = curr->next;curr->next = prev;prev = curr;curr = next;}return prev;}(2) 给定一个二叉树,请计算其深度。

《西华大学考研数据结构》解答题汇总(精心整理含答案)

《西华大学考研数据结构》解答题汇总(精心整理含答案)

//1 分
{ k=locatavex(g,u); //1 分 For(j=0; j<n; j++) //1 分
If(j!=k) closedge[j]={u, g[k][j],sdj};
Closedge[k].lowcost=0; //2 分
For(i=1; i<n; i++) //1 分 { k=minimum(closege); //1 分
答案解析:
Int isincreasing(LinkList L) //返回值为 1 表示单链表是递增的,否则为 0。 { p=L; //2 分 While(p->next!=NULL) //3 分 If(p->data < p->next->data) p=p->next; //3 分
Else return 0; //1 分
}
7. 给出拓扑排序的算法(13 分)
Status topologicalsort(algraphy G) { findindegree( g, indegree); //2 分
Initstack(s); //1 分 For(i=0; i<=n; i++) //2 分
//1 分
If(!indegree[i] push(s,i);
If(bt->child!=NULL)
locatechild(bt->lchild,x); //2 分
Else if(bt->rchild!=NULL) locatechild(bt->rchild,x);
//1 分
}
6. 给出求最小生成树的算法。(12 分) 答案解析:

西华大学数据结构综合期未试题.doc

西华大学数据结构综合期未试题.doc

试卷编号:数据结构期末试卷一、选择题(在每个小题四个备选答案中选出一个正确答案)(本大题共20小题,每小题1.5分,总计30分)1、数据的基本单位是( B )。

A.数组元素B.数据元素C.数据项D.数据对象1、性质相同的数据元素的集合是(D )。

A.数组元素B.数据元素C.数据项D.数据对象2、下列选项中哪个不属于算法重要特性?(D )A.有穷性和确定性B.可行性C.输入和输出D.可视化和模块化2、算法的效率一般是指(A )。

A.算法的执行时间B.算法所需要存储空间C.算法的可读性D.算法处理的数据量3、如一个线性表中的数据元素是由若干个数据项组成,人们通常把这样的数据元素又称为(A)。

A.记录B.字段C.属性D.数据项集合3、在线性表的抽象数据类型定义中,下列哪个是其数据关系的描述?其中ai指数据元素,D指数据对象。

( B )A. R={<a i,a n> |a i,a n∈D,i=1,2…,n}B. R={<a i,a i+1> |a i,a n∈D,i=1,2…,n-1}C. R={<a i,a i+1> |a i,a n∈D,i=1,2…,n}D. R={<a i-1,a i> |a i,a n∈D,i=2,3…,n-1}4、与数组相比,用链表表示线性表的主要优点是( C )。

A.便于随机存取B.花费的存储空间比顺序表少C.便于插入与删除D.数据元素的物理顺序与逻辑顺序相同4、与链表相比,采用数组表示性线表的主要优点是( A )。

A.便于随机存取B.花费的存储空间比顺序表少C.便于插入与删除D.数据元素的物理顺序与逻辑顺序不一定相同5、下列关于栈说法正确的是(A )。

A. 栈是限定在表尾部进行插入和删除操作的线性表 B . 一般使用链作栈存储结构,不可使用数组 C. 栈是先进先出的一种结构 D. 栈有栈顶和栈底,可从栈顶或栈底开始取元素5、下列关于栈的说法正确的是(C)A.在顺序栈中,栈底指针是可随意移动的 B . 空栈时,栈顶和栈底指针只相差1 . C。

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

西华大学课程考试参考答案(中期卷)
评分标准:选对一题得2分,不选或选错得0分。

1-5:DBACC 6-10:CCBDB
二、填空题(请将正确的答案填在空白处)(本大题共10小题,每小题2分,总计20分)
评分标准:填空正确得2分,不填或填错得0分。

1.有限2.p->next 3.p->next==NULL 4.p->prior 5.先进后出/后进先出
6. 3,2,1
7.队空的判断
8. 2
9. 200 10. 5
三、算法设计题参考答案及评分标准:(本大题共6个小题,每小题10分,共60分)
评分标准:请根据编程情况酌情给分。

1.参考答案
void ArrayToLink(LINK *H,int A[],int n)
{LINK *p;
int i=0;
for(i=0;i<n;i++)
{ p=new LINK;
p->data=a[i];
p->next=NULL;
if(H->next==0) H->next=p;
else
q->next=p;
q=p;
}
}
2.参考答案
void InverPrint(DLink *H)
{DLink *p=H->prior;
while(p!=H)
{ cout<<p->data<<”“;
p=p->prior;
}
cout<<endl;
}
3. 参考答案示例:
void DelInsert(LinkList &L)
{∥本算法将带头结点的非空单链表L中数据域值最小的那个结点移到链表的最前面。

p=L->next;∥p是链表的工作指针
pre=L;∥pre指向链表中数据域最小值结点的前驱。

q=p;∥q指向数据域最小值结点,初始假定是首元结点
while (p->next!=NULL)
{ if(p->next->data<q->data){ pre=p;q=p->next;} ∥找到新的最小值结点 p=p->next;
}
if (q!=L->next)
{ pre->next=q->next;∥将最小值结点从链表上摘下
q->next= L->next;∥将q结点插到链表最前面
L->next=q;
}
}//DelInsert
4. 参考答案示例:
void Count(BiTree T,int &n0,int &n)
{//统计二叉树T上叶结点数n0和非叶结点数n。

if(T)
{ if (T->lchild== NULL && T->rchild== NULL) n0++;//叶结点
Count(T->lchild, n0, n);
Count(T->rchild, n0, n);
}
}//Count
5.参考答案
int Push(LinkStack *&S,ElemType e[])
{int i=0;
LinkStack *p;
while(e[i]!=’\0’)
{ p=new LinkStack;
p->elem=e[i];
p->next=S;
S=p;
}

6. 参考答案
void InOrder(BTNode *t)
{ if(t!=NULL)
{ InOrder(t->lchild);
Cout<<t->data<<”“;
InOrder(t->rchild);
}
}。

相关文档
最新文档