全文预览

数据结构期中测试题答案

上传者:读书之乐 |  格式:doc  |  页数:4 |  大小:45KB

文档介绍
int y){Р for (i=0;i<=L.length-1;i++)Рif(L.elem[i]>=x && L.elem[i]<=y) L.elem[i]=0;Р for(i=L.length-1;i>=0;i--)Р if(L.elem[i]==0){Р for (k=i;k<=L.length-2;k++) L.elem[k]=L.elem[k+1];Р L.length--;}Р}Р编写一个算法计算一个带头结点的循环单链表L中的元素个数。Рint count(CircularLinkList L){Р int n;Р p=L->next;Р if (!p) return (0);Р n=1;Р while(p->next!=L){Р n++;Р p=p->next;}Р return (n);}Р利用两个栈s1和s2模拟一个队列时,编写算法用栈的运算来实现该队列的入队操作enqueue和出队操作dequeue。Р分析:由于栈的特点是FILO,为了模拟FIFO的队列,必须用两个栈,一个栈s1用于插入元素,另一个栈s2用于删除元素,每次删除元素时应将前一个栈的所有元素读出然后进入第二个栈中,这样才能达到模拟队列的效果。РStatus enqueue(SqStack &s1,ElemType x){Р if(s1.top-s1.base>=s1.stacksize) exit(OVERFLOW);Р else push(s1,x);Р}РStatus dequeue(SqStack &s1,SqStack &s2,ElemType x){Р ClearStack(s2);Р while(!StackEmpty(s1)) push(s2,pop(s1,x));Р pop(s2,x);Р while(!StackEmpty(s2) push(s1,pop(s2,x));Р}

收藏

分享

举报
下载此文档