数据构造c语言第三版,邓文华编习题_1.docx
数据构造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,34X*+2Y*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非递归:intvonvert(intno,inta)/将十进制数转换为2进制存放在a,并返回位数intr;SeStacks,*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+;returnr;递归算法:voidconvert(intno)if(no/2>0)Convert(no/2);Printf(“%d,no%2);elseprintf(“%d,no);参考程序:voidview(SeStacks)SeStack*p;/假设栈元素为字符型charc;p=&s;while(!empty_stack(p)c=pop(p);printf(“%c,c);printf(n);答:char参考程序:voidout(linkqueueq)inte;while!=)dequeue(q,e);print(e);/打印嘿嘿,感谢吧,标准答案哦