知识大全 数据结构考研分类复习真题 第三章 答案[13]
Posted 元素
篇首语:不飞则已,一飞冲天;不鸣则已,一鸣惊人。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构考研分类复习真题 第三章 答案[13]相关的知识,希望对你有一定的参考价值。
typedef struct elemtp q[m]; int front count; //front是队首指针 count是队列中元素个数 cqnode; //定义类型标识符 ( )判空 int Empty(cqnode cq) //cq是cqnode类型的变量 if(cq count== ) return( ) else return( ); //空队列 入队: int EnQueue(cqnode cq elemtp x) if(count==m)printf( 队满\\n ) exit( ); cq q[(cq front+count)%m]=x; //x入队 count++; return( ); //队列中元素个数增加 入队成功 出队: int DelQueue(cqnode cq) if (count== )printf( 队空\\n ) return( ); printf( 出队元素 cq q[cq front]); x=cq q[cq front]; cq front=(cq front+ )%m; //计算新的队头指针 return(x)
( ) 队列中能容纳的元素的个数为m 队头指针front指向队头元素
循环队列中元素个数为(REAR FRONT+N)%N 其中FRONT是队首指针 指向队首元素的前一位置 REAR是队尾指针 指向队尾元素 N是队列最大长度
循环队列解决了用向量表示队列所出现的 假溢出 问题 但同时又出现了如何判断队列的满与空问题 例如 在队列长 的循环队列中 若假定队头指针front指向队头元素的前一位置 而队尾指针指向队尾元素 则front= rear= 的情况下 连续出队 个元素 则front==rear为队空 如果连续入队 个元素 则front==rear为队满 如何判断这种情况下的队满与队空 一般采取牺牲一个单元的做法或设标记法 即假设front==rear为队空 而(rear+ )%表长==front为队满 或通过设标记tag 若tag= front==rear则为队空 若tag= 因入队而使得front==rear 则为队满
本题中队列尾指针rear 指向队尾元素的下一位置 listarray[rear]表示下一个入队的元素 在这种情况下 我们可规定 队头指针front指向队首元素 当front==rear时为队空 当(rear+ )%n=front时为队满 出队操作(在队列不空情况下)队头指针是front=(front+ )%n
cha138/Article/program/sjjg/201311/22709相关参考
知识大全 数据结构考研分类复习真题 第三章 栈和队列[13]
已知链队列的头尾指针分别是f和r则将值x入队的操作序列是_______【合肥工业大学三(分)】 .区分循环队列的满与空只有两种方法它们是______和______【北京邮电大学二(分)】 .设
第三章 栈和队列答案 一选择题 BBABDCBDDCDBDDDCBCBDBBBDDDDCAADBBDCBCBACCFCCAAD 二判断题 √√√√×√√√√×√×××√×√×√√
见上题的解答 参见上面题 typedefstructnode elemtypeelemcq[m]; //m为队列最大可能的容量 intfrontrear;
[题目分析]本题与上面题基本相同现用类C语言给出该双端队列的定义 #definemaxsize typedefstruct datatypeelem[maxsize]; int
#definemaxsize栈空间容量 voidInOutS(ints[maxsize]) //s是元素为整数的栈本算法进行入栈和退栈操作 inttop=;  
s=(LinkedList)malloc(sizeof(LNode))s>data=x;s>next=r>nextr>next=sr=s 牺牲一个存储单元 &n
既不能由输入受限的双端队列得到也不能由输出受限的双端队列得到的输出序列是dbca () () &nbs
本题与上题本质上相同现用类C语言编写入队和出队算法 ()voidEnQueue(LinkedListrearElemTypex) //rear是带头结点的循环链队列的尾指针本算法将元素x插入到
intMaxValue(inta[]intn)//设整数序列存于数组a中共有n个本算法求解其最大值 if(n==)max=a[]; elseifa[n]>MaxValue(an)max=
[题目分析]这是以读入数据的顺序为相反顺序进行累乘问题可将读入数据放入栈中到输入结束将栈中数据退出进行累乘累乘的初值为 PROC test; CONSTmaxsize=; VARs