文档库 最新最全的文档下载
当前位置:文档库 › 数据结构c语言第三版,邓文华编习题

数据结构c语言第三版,邓文华编习题

数据结构c语言第三版,邓文华编习题
数据结构c语言第三版,邓文华编习题

习题 3 参考答案

.选择题

(1) . D (2). C (3). D (4). C (5). B (6). C (7). C (8). C (9). B (10).B(11). D (12). B (13). D (14). C (15). C (16). C (17). D (18). C (19). C (20 填空题

( 1 )FILO, FIFO

(2)-1, 3 4 X * + 2 Y * 3 / -

(3), []=x

( 4 ) p>llink->rlink=p->rlink, p->rlink->llink=p->rlink

( 5)(R-F+M)%M

( 6 ) top1+1==top2

( 7)F==R

( 8 ) front==rear

( 9)front==(rear+1)%n

(10)N-1

答:一般线性表使用数组来表示的线性表一般有插入、删除、读取等对于任意元素的操作而栈只是一种特殊的线性表

栈只能在线性表的一端插入(称为入栈,push)或者读取栈顶元素或者称为

“弹出、出栈” (pop。)

答:相同点:栈和队列都是特殊的线性表,只在端点处进行插入,删除操作。

不同点:栈只在一端(栈顶)进行插入,删除操作;队列在一端( top )删除,一端(rear)插入。

答:可能序列有14 种:

ABCD;ACBD;ACDB;ABDC;ADCB;BACD;BADC;BCAD;BCDA;BDCA;CBAD; CBDA; CDBA; DCBA。

答:不能得到4,3,5,6,1,2,最先出栈的是4,则按321 的方式出,不

可能得到1在2前的序列,可以得到1,3,5,4,2,6,按如下方式进行

push(1),pop(),push(2),push(3),pop(), push(4), push(5), pop(), pop(), pop(), push(6), pop()。

答:stack

非递归:

int vonvert (int no,int a[]) //将十进制数转换为2进制存放在a[],并返回位

数{

int r;

SeStack s,*p;

P=&s;

Init_stack(p);

while(no)

{

push(p,no%2);

no/=10;

}

r=0;

while(!empty_stack(p)) pop(p,a+r); r++;

} return r;

}

递归算法:

void convert(int no)

{

if(no/2>0)

{

Convert(no/2);

Printf( “ %d” ,no%2);

}

else

printf( “ %d” ,no);

}

参考程序:

void view(SeStack s)

{

SeStack *p; //假设栈元素为字符型char c;

p=&s;

while(!empty_stack(p))

{

c=pop(p);

printf( “ %c” ,c);

}

printf( n” );

}

答:char

参考程序:

void out(linkqueue q)

{

int e;

while != )

{

dequeue(q,e);

print(e); // 打印

}

} 嘿嘿,感谢吧,标准答案哦

相关文档