回 帖 发 新 帖 刷新版面

主题:紧急请救

紧急求救:谁会做?谢谢
题目如下:设车辆厂生产了硬座车厢和软座车厢共N节(混合在一起),要求用顺序栈的5种运算使所有的硬座车厢排列到所有软座车厢的前面。1.硬座车厢用H来表示,软座车厢用S来表示,先用顺序存储结构定义好栈的5种运算(初始化、进栈、出栈、退栈、判栈空、取栈顶元素),即先定义5个子函数,然后从键盘上输入N节车厢代号(顺序随意),若为软座车厢则进栈,否则输出。这时候,全部软座车厢输出,接着用循环退栈,输出栈中所有硬座车厢即可。最后用主函调用它。

S    H    H    S    S    H    S    H    H

S    S    S    S    H    H    H    H    H

         
 
[em10][em10][em10][em18][em18][em18][em18][em18][em18][em18]

回复列表 (共4个回复)

沙发

void Train_arrange(char *train)//这里用字符串train表示火车,'H'表示硬席,'S'表示软席
{
  p=train;q=train;
  InitStack(s);
  while(*p)
  {
    if(*p=='H') push(s,*p); //把'H'存入栈中
    else *(q++)=*p; //把'S'调到前部
    p++;
  }
  while(!StackEmpty(s))
  {
    pop(s,c);
    *(q++)=c; //把'H'接在后部
  }
}

板凳


那主函数呢?

3 楼

不是吧!跟你说个思路就行了
其他你就自己编了
想吃现成的啊!难啊

4 楼

主函数就是main()中各个分函数,和输入输出就可以了,

我来回复

您尚未登录,请登录后再回复。点此登录或注册