在火车调度站的入口处有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)。
举一反三
- 假设如题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 ;//判队列空否