栈的运用(1)

问题描述:

  火车调度站的入口处有n节硬席或软席车厢(以HS表示)等待调度,试编写算法,输出对这n节车厢进行调度的操作(即入栈或出栈操作)序列,使得所有软席车厢都被调整到硬席车厢之前。

问题分析:

此题主要解决的问题是,不管是入栈还是出栈,软席车厢要在硬席车厢之前

一开始能想到的效果就是一头一尾都是软席,这样入栈和出栈都使得软席在硬席之前咯

 没看清题目啊,题目是说要把所有软席车厢都被调整到硬席车厢之前呢?亲啊。

Int main()

{

  Stack s;

  Char buffer[80];

  InitStack(s);

  Int i=0,j=0;

  Printf(请输入序列\n);

 While(i<s.stacksize){

 

   Scanf(%c,&buffer[i]);

    I++;

   }//这段代码时有问题的

C语言知道该怎么写了,

得承认写得少,但是来得及的,你看数据结构可以给你补很多知识。

Scanf(%s,buffer);//自己试着多写写就是熟悉了。

C++是直接这样写的

Cin>>buffer;

While(buffer[i]){

 If(buffer[i]==S){

   Buffer[j]=buffer[i];

   j++;

 }

 Else

  Push(s,buffer[i]);

  I++;

}

While(buffer[j])//说实话,我对数组的使用还不是很清楚,声明了一个字符数组,用得有些别扭,要多编程。

{

  Pop(s,buffer[j]);

  J++;

}

Printf(%s,buffer);//各种语言的使用并不可怕,关键是编程的思想呢?可能这语句有问题,在C++中是这样表示的,cout<<buffer<<endl;

Return 0;

}

原文地址:https://www.cnblogs.com/wj204/p/3044331.html