《第三章习题答案.pdf》由会员分享,可在线阅读,更多相关《第三章习题答案.pdf(2页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第三章习题二、算法设计题2.设以数组 sem存放循环队列的元素,同时设变量 rear 和 front 分别作为队头对尾的指针,且队头指针指向队头前一个位置,写出这样设计的循环队列入队出队的算法。入队算法:intin_csequeue1(datatype se,int rear,int front,datatype x)if(rear+1)m=front)return 0;else*rear=(rear+1)m;serear=x;return 1;出队算法:intout _ csequeue1(datatype se,int rear,int*front,datatype*x)if(*rear=
2、front)return 0;else*front=(ftont+1)%m;*x=sefront;return 1;3.假设以数组 sem 存放循环队列的元素,同时设变量 rear 和 num 分别作为队尾指针和队中元素个数记录,是给出判断此循环队列的队满条件。写出这样设计的循环队列入队出队的算法。入队算法:intin_csequeue2(datatype se,int*rear,int num,datatype*x)if(*num=m)return 0;elserear=(*rear+1)%m;serear=x;num+;return 1;出队算法:intout _ csequeue2(datatype se,intrear,int*num,datatype x)if(*num=0)return 0;elsex=se(rear-num+1)%m;num ;return 1;6。写一个算法,借助于栈将一个单链表置逆。void convert(linklistL)Lnode*p,*q;seqstack*s;p=L;while(p)in_seqstack(s,pdata)p=pnext;p=L;while(!empty_seqstack(s)pdata=pop_seqstack(s);p=pnext;