《第三章习题答案24676.doc》由会员分享,可在线阅读,更多相关《第三章习题答案24676.doc(2页珍藏版)》请在三一文库上搜索。
1、.第三章习题二、算法设计题2. 设以数组sem存放循环队列的元素,同时设变量rear 和front分别作为队头对尾的指针,且队头指针指向队头前一个位置,写出这样设计的循环队列入队出队的算法。入队算法: int in_csequeue1(datatype se, int *rear , int *front , datatype x ) if (*rear +1)%m= =*front) return 0; else *rear=(*rear+1)%m;se*rear=x;return 1;出队算法: int out _ csequeue1(datatype se, int *rear , in
2、t *front , datatype *x ) if ( *rear= =*front ) return 0; else *front=(*ftont+1) %m;*x=se*front; return 1;3. 假设以数组sem 存放循环队列的元素,同时设变量rear 和num分别作为队尾指针和队中元素个数记录,是给出判断此循环队列的队满条件。写出这样设计的循环队列入队出队的算法。入队算法: int in_csequeue2(datatype se, int *rear , int *num ,datatype *x) if (*num= =m) return 0; else *rear=
3、(*rear+1)%m;se*rear=x;*num+;return 1;出队算法: int out _ csequeue2(datatype se, int rear , int *num ,datatype *x) 精品. if ( *num= =0 ) return 0; else *x=se(rear - *num+1)%m;num- - ; return 1;6. 写一个算法,借助于栈将一个单链表置逆。void convert(linklist *L) Lnode *p,*q; seqstack *s; p=L; while(p) in_seqstack( s, p-data)p=p-next;p=L;while(!empty_seqstack(s) p-data=pop_seqstack(s);p=p-next;如有侵权请联系告知删除,感谢你们的配合!精品