题目内容

编写算法Reverse(LinkList &L),要求借助于栈将一个带头结点的单链表L逆置。其中栈的初始化操作、入栈操作和出栈操作算法名分别为InitStack(&S)、Push(&S,e)、Pop(&S,&e),单链表的存储结构如下:typedef struct LNode {ElemType data; // 数据域struct LNode *next; // 指针域} LNode, *LinkList;(特别注意:为批改方便,请将每道作业题的答案都直接写入答案框中,不能以图片或附件的形式上传提交,否则以无效提交处理。)

查看答案
更多问题

假设以顺序存储结构实现一个双向栈,即在一维数组的存储空间中存在两个栈,它们的栈底分别设在数组的两个端点,栈顶指针分别指示栈顶元素的下一存储单元。试编写实现这个双向栈tws的入栈操作Push(&tws, i ,e)和出栈操作的算法Pop(&tws,i,e),其中i为1或2,用以分别指示设在数组两端的两个栈。其中双向栈的存储结构描述如下://双向栈类型描述如下:typedef struct{SElemType *base1,*base2;//分别指示两个栈的栈底元素SElemType *top1,*top2; //分别指示两个栈的栈顶元素的下一存储单元} BDStacktype; //双向栈类型

如果希望循环顺序队列中的存储空间都能得到利用,可设置一个标志域变量tag,并以tag的值为0或1来区分队头指针和队尾指针相等时的队列状态是“空”还是“满”。试编写此结构相应的入队和出队算法。提示:满足上述要求的队列存储结构可描述如下:typedef struct {QElemType *base; //连续存储空间基址int front; //队头指针,指向队首元素int rear; //队尾指针,指向队尾元素的下一位置int flag; // 标志域,初值为0,每当入队时,置值为1;每当出队时,置值为0;}SqQueue;

假设将循环顺序队列定义为:以域变量rear和length分别指示循环顺序队列中队尾元素的位置和内含元素的个数,试给出此循环队列的队满条件,并写出相应的入队和出队操作的算法。提示:满足上述条件的循环顺序队列的存储结构可描述如下:#define MAXQSIZE 100typedef struct {QElemType *base; //连续存储空间基址int rear; //队尾指针,指向队尾元素的位置int length; //队列的长度}CyQueue;

【2009年计算机考研真题】设栈S和队列Q的初始状态均为空,元素abcdefg依次进入栈S。若每个元素出栈后立即进入队列Q,且7个元素出队的顺序是bdcfeag ,则栈S的容量至少是( )

A. 1
B. 2
C. 3
D. 4

答案查题题库