在火车调度站的入口处有n节硬席车厢(用1表示)和软席车厢(用2表示)等待调度,试编写一个算法,输出对n节车厢进行调度的操作,使所有软席车厢都被调整到硬席之前。 栈定义结构: struct stack{ elemtype stack[100]; int top; } 栈的进栈、出栈、取栈顶元素、判栈空算法分别为:push(struct stack &s)、pop(struct stack &s)、gettop(struct stack s)、empty(struct stack s)。
void train(int a[],int n) { int i,j; struct stack s; for(i=0;i
举一反三
- 假设如题1所示火车调度站的入口处有n节硬席或软席车厢(分别以H和s表示)等待调度,试编写算法,输出对这n节车厢进行调度的操作(即入栈或出栈操作)序列,以使所有的软席车厢都被调整到硬席车厢之前。
- 假设如题1所述火车调度站的入口处有 n 节硬席或软席车厢(分别以H和S表示)等待调度,试编写算法,输出对这 n 节车厢进行调度的操作(即入栈或出栈操作)序列,以使所有的软席车厢都被调整到硬席车厢之前。
- 假设如题所属火车调度站的入口处有 n 节硬席或软席车厢(分别以 H 和 S 表示)等待调度,试编写算法,输出对这 n 节车厢进行调度的操作(即入栈或出栈操作)序列,以使所有的软席车厢都被调整到硬席车厢之前。[img=1246x1080]17ad6251b49c749.jpg[/img]
- 已知STACK表示栈的结构,push为元素e进栈操作,若成功返回1,否则返回0,完成以下算法。typedef struct{int data[100];int top;//栈顶元素的下一个位置的下标}STACK;int push(STACK &s, int e){ if() return 0; //栈满= e;s->top++;return 1;}
- 已知Q是一个非空队列,S是一个空栈。仅用队列和栈的ADT函数和少量工作变量,使用 PASCAl或C语言编写一个算法,将队列Q中的所有元素逆置。的ADT函数有:makeEmpty ( s: stack ) ;//置空栈push ( s :stack ; value:datatype ) ;//新元素value入栈pop ( s : stack ) :datatype;//出栈,返回栈顶值isEmpty ( s :stack ) : Boolean ;//判栈空否队列的ADT函数有:enQueue( q:queue:value:datatype);//元素value进队deoueue (q:queue ) : datatype ;//出队列,返回队头值isEmpty(q:queue ) : boolean ;//判队列空否
内容
- 0
中国大学MOOC: 顺序栈stack[0..m],栈底在stack[0]处。用top指向栈顶元素之后的空位置,判断栈空的条件是( )
- 1
当利用大小为n的数组顺序存储一个栈时,假定用top==0表示栈空,则向这个栈插入一个元素时,操作为( )。 A: top=top+1; stack[top]=x; B: stack[top]=x; top=top+1; C: top=top-1; stack[top]=x; D: stack[top]=x; top=top-1;
- 2
定义了类模板 Stack,实现对元素进行入栈出栈操作。
- 3
向一个顺序栈S(栈顶指针为top)中插入元素x时,首先要()。 A: S->stack[S->top]=x B: S->top++ C: S->top-- D: x=S->stack[S->top]
- 4
向一个顺序栈S(栈顶指针为top)中插入元素x时,首先要()。 A: S->stack[S->top]=x B: S->top++ C: S->top-- D: x=S->stack[S->top]