数据结构本形成性考核作业答案

发布 2022-07-05 04:59:28 阅读 9045

数据结构(本)形成性考核作业答案。

作业2答案。

本部分作业覆盖教材第3-5章的内容)

一、单项选择题。

1.c 2.b 3.a 4.c 5.d 6.a 7.b 8.c 9.c 10.c

11.b 12.c 13.b 14.b 15.a 16.c 17.b 18.a 19.c 20.d

21.b 22.d 23.c 24.b 25.d 26.a 27.c 28.d 29.d 30.c 31.a 32.d

二、填空题

1.后进先出。

2.下一个。

3.增1 增1

4.假上溢。

栈是否满 s->top=maxsize-1 栈顶指针栈顶对应的数组元素栈是否空 s->top=-1 栈顶元素删除修改栈顶指针。

6.bceda

7.终止条件递归部分。

8.lu->front==lu->rear

9.运算符操作数 ab+c/fde/--

10.s->next=h

11.h=h->next;

12.r->next=s;

13.f=f->next;

14.字符。

15.顺序存储方式链式存储方式。

16.0 空格字符的个数。

17.特殊稀疏。

19.((d,e,f))

20.串长度相等且对应位置的字符相等。

21.i(i-1)/2+j

22.行下标、列下标、非零元素值。

三、问答题。

1.简述栈和一般线性表的区别。

答:栈是一种先进后出的线性表,栈的插入和删除操作都只能在栈顶进行,而一般的线性表可以**性表的任何位置进行插入和删除操作。

2.简述队列和一般线性表的区别。

队列是一种先进先出的线性表,队列的插入只能在队尾进行,队列的删除只能在队头进行,而一般的线性表可以**性表的任何位置进行插入和删除操作。

3.链栈中为何不设头结点?

答:因为链栈只在链头插入和删除结点,不可能在链表中间插入和删除结点,算法实现很简单,所以一般不设置头结点。

4.利用一个栈,则:

1)如果输入序列由a,b,c组成,试给出全部可能的输出序列和不可能的输出序列。

2)如果输入序列由a,b,c,d组成,试给出全部可能的输出序列和不可能的输出序列。

答:1)栈的操作特点是后进先出,因此输出序列有:

a入,a出,b入,b出,c入c出,输出序列为abc。

a入,a出,b入,c入,c出,b出,输出序列为acb。

a入,b入,b出,a出,c入,c出,输出序列为bac。

a入,b入,b出,c入,c出,a出,输出序列为bca。

a入,b入,c入,c出,b出,a出,输出序列为cba。

由a,b,c组成的数据项,除上述五个不同的组合外,还有一个c,a,b组合。但不可能先把c出栈,再把a出栈,(a不在栈顶位置),最后把b出栈,所以序列cab不可能由输入序列a,b,c 通过栈得到。

2)按照上述方法,可能的输出序列有:

abcd,abdc,acbd,acdb,adcb,bacd,badc,bcad,bcda,bdca,cbad,cbda,cdba,dcba。

不可能的输出序列有:

dabc,adbc,dacb,dbac,bdac,dbca,dcab,cdab,cadb,cabd

5.用s表示入栈操作,x表示出栈操作,若元素入栈顺序为1234,为了得到1342出栈顺序,相应的s和x操作串是什么?

答:应是sxssxsxx。各操作结果如下:

s 1入栈。

x 1出栈输出序列:1

s 2入栈。

s 3入栈。

x 3出栈输出序列:13

s 4入栈

x 4出栈输出序列:134

x 2出栈输出序列:1342

6.有5个元素,其入栈次序为:a、b、c、d、e,在各种可能的出栈次序中,以元素c、d最先的次序有哪几个?

答:从题中可知,要使c第一个且d第二个出栈,应是a入栈,b入栈,c入栈,c出栈,d入栈。之后可以有以下几种情况:

1)b出栈,a出栈,e入栈,e出栈,输出序列为:cdbae。

2)b出栈,e入栈,e出栈,a 出栈,输出序列为cdbea。

3)e入栈,e出栈,b出栈,a出栈,输出序列为cdeba

所以可能的次序有:cdbae,cdbea,cdeba

7.写出以下运算式的后缀算术运算式。

3x2+x-1/x+5

(a+b)*c-d/(e+f)+g

答;对应的后缀算术运算式。

3x2^*x+1x/-5+

ab+c*def+/-g+

8. 简述广义表和线性表的区别和联系。

答:广义表是线性表的的推广,它也是n(n>0)个元素a1 ,a2…ai… an的有限序列,其中ai或者是原子或者是一个广义表。所以,广义表是一种递归数据结构,而线性表没有这种特性,线性表可以看成广义表的特殊情况,当ai都是原子时,广义表退化成线性表。

四、程序填空题。

1)q->front->next=p->next;

2)free(p);

3)q->rear=q->front

五、综合题。

答:出队序列是e2,e4,e3,e6,e5,e1的过程:

e1入栈(栈底到栈顶元素是e1)

e2入栈(栈底到栈顶元素是e1,e2)

e2出栈(栈底到栈顶元素是e1)

e3入栈(栈底到栈顶元素是e1,e3)

e4入栈(栈底到栈顶元素是e1,e3,e4)

e4出栈(栈底到栈顶元素是e1,e3)

e3出栈(栈底到栈顶元素是e1)

e5入栈(栈底到栈顶元素是e1,e5)

e6入栈(栈底到栈顶元素是e1,e5,e6)

e6出栈(栈底到栈顶元素是e1,e5)

e5出栈(栈底到栈顶元素是e1)

e1出栈(栈底到栈顶元素是空)

栈中最多时有3个元素,所以栈s的容量至少是3。

算法设计如下:

*只有一个指针rear的链式队的基本操作*/

#include <>

typedef char elemtype;

struct node /*定义链队列结点*/

elemtype data;

struct node *next;

typedef struct queue /*定义链队列数据类型*/

struct node *rear;

linkqueue;

void initqueue(linkqueue *q)/*初始化队列*/

q=(struct queue *)malloc(sizeof(struct queue));

q->rear=null;

void enqueue(linkqueue *q,elemtype x) /入队算法*/

struct node *s,*p;

s=(struct node *)malloc(sizeof(struct node));

s->data=x;

if (q->rear==null原为空队时*/

else原队不为空时*/

void delqueue(linkqueue *q) /出队算法*/

struct node *t;

if (q->rear==null)

else if (q->rear->next==q->rear) /只有一个结点时*/

else /*有多个结点时*/

free(t);

elemtype gethead(linkqueue *q) /取队首元素算法*/

int emptyqueue(linkqueue *q) /判断队列是否为空算法*/

void dispqueue(linkqueue *q显示队列中元素算法*/

struct node *p=q->rear->next;

printf("队列元素:")

while (p!=q->rear)

printf("%c",p->data);

形成性考核作业答案

建筑结构试验 形成性考核作业答案。建筑结构试验 第一次形成性考核解析。说明 本次形成性考核是针对教材第一章和第二章的内容编写的。一 选择题。1b 2c 3d 4b 5c 6d 7a 8d 二 填空题。1生产检验科学研究 2振动疲劳 3实测值设计值 4周期性的反复的 5容重获得。6均布集中 7拉力压力...

地域文化 本 形成性考核作业 三

一 判断题 根据题意判断正误,并在括号中打 或 每小题2分,共20分 先秦时期,浙江地区就已经有了春节这项民间节日。清明节又叫踏青节。南宋时,浙江已经有了庆祝中秋节的习俗。九姓渔民水上婚礼是杭州钱塘江上流行的一种婚俗。浙江的火葬习俗始于唐朝。社戏 是浙江绍兴地区民间祭社时的一种文化活动。普陀山是我国...

地域文化 本 形成性考核作业 三

一 判断题 根据题意判断正误,并在括号中打 或 每小题2分,共20分 先秦时期,浙江地区就已经有了春节这项民间节日。清明节又叫踏青节。南宋时,浙江已经有了庆祝中秋节的习俗。九姓渔民水上婚礼是杭州钱塘江上流行的一种婚俗。浙江的火葬习俗始于唐朝。社戏 是浙江绍兴地区民间祭社时的一种文化活动。普陀山是我国...