知识大全 数据结构考研分类复习真题 第三章 答案[24]
Posted 指针
篇首语:实践是知识的母亲,知识是生活的明灯。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构考研分类复习真题 第三章 答案[24]相关的知识,希望对你有一定的参考价值。
[题目分析] 用一维数组 v[ M ]实现循环队列 其中M是队列长度 设队头指针 front和队尾指针rear 约定front指向队头元素的前一位置 rear指向队尾元素 定义front=rear时为队空 (rear+ )%m=front 为队满 约定队头端入队向下标小的方向发展 队尾端入队向下标大的方向发展
( )#define M 队列可能达到的最大长度 typedef struct elemtp data[M]; int front rear; cycqueue;
( )elemtp delqueue ( cycqueue Q) //Q是如上定义的循环队列 本算法实现从队尾删除 若删除成功 返回被删除元素 否则给出出错信息 if (Q front==Q rear) printf( 队列空 ); exit( ); Q rear=(Q rear +M)%M; //修改队尾指针 return(Q data[(Q rear+ +M)%M]); //返回出队元素 //从队尾删除算法结束 void enqueue (cycqueue Q elemtp x) // Q是顺序存储的循环队列 本算法实现 从队头插入 元素x if (Q rear==(Q front +M)%M) printf( 队满 ; exit( );) Q data[Q front]=x; //x 入队列 Q front=(Q front +M)%M; //修改队头指针 // 结束从队头插入算法
参见
cha138/Article/program/sjjg/201311/22698相关参考
知识大全 数据结构考研分类复习真题 第三章 栈和队列[24]
假设以带头结点的循环链表表示队列并且只设一个指针指向队尾结点但不设头指针如图所示(编者略)请写出相应的入队列和出队列算法【西安电子科技大学计应用六(分)】 如果允许在循环队列的两端都可以进行插入
第三章 栈和队列答案 一选择题 BBABDCBDDCDBDDDCBCBDBBBDDDDCAADBBDCBCBACCFCCAAD 二判断题 √√√√×√√√√×√×××√×√×√√
见上题的解答 参见上面题 typedefstructnode elemtypeelemcq[m]; //m为队列最大可能的容量 intfrontrear;
typedefstruct elemtpq[m]; intfrontcount; //front是队首指针count是队列中元素个数 cqnode; &nbs
[题目分析]本题与上面题基本相同现用类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=