雷火电竞-中国电竞赛事及体育赛事平台

歡迎來到入門教程網(wǎng)!

C語(yǔ)言

當(dāng)前位置:主頁(yè) > 軟件編程 > C語(yǔ)言 >

C++基于棧實(shí)現(xiàn)鐵軌問題

來源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語(yǔ)言|點(diǎn)擊:

本文實(shí)例講述了C++基于棧實(shí)現(xiàn)鐵軌問題。分享給大家供大家參考。具體分析如下:

示例圖如下所示:

經(jīng)典棧問題!第一次做的時(shí)候思路太混亂了,現(xiàn)在看了劉汝佳的書,重新整理下。

#include <stdio.h>
#include <string.h>
/******************************************************************
* 用數(shù)組A存儲(chǔ)調(diào)整前的車廂號(hào)序列,用數(shù)組B存儲(chǔ)調(diào)整好的車廂號(hào)序列
* 用棧stack存儲(chǔ)存放在中轉(zhuǎn)站C中的車廂
*  用ix_A指向A中最前面的車廂,用ix_B指向B中最前面的車廂
*
*  如果ix_B已經(jīng)指向了\0,則說明所有車廂已經(jīng)按指定次序出站,否則
*  如果ix_B指向的車廂等于ix_A指向的車廂,則直接把ix_A開到B,否則
*  如果ix_B指向的車廂等于stack中的棧元素,則把棧頂車廂開出,否則
*  如果此時(shí)A中還有車廂,則把A開入中轉(zhuǎn)站C中,否則
*  輸出無解。
*******************************************************************/
char stack[1010];
char A[1010];
char B[1010];
int main(int argc, char *argv[])
{
 scanf("%s%s",A,B);
 int len_a = strlen(A);
 int len_b = strlen(B);
 /* 初始化棧 */
 int top = -1;
 int tot = 0;
 int ix_a = 0;
 int ix_b = 0;
 while(1)
 {
  if(A[ix_a] == B[ix_b])
  {
   printf("in\n");
   printf("out\n");
   ++ix_b;
   ++ix_a;
   if(ix_b == len_b) /* 車已經(jīng)全出去了,操作成功 */
    break;
  }
  else if(tot != 0 /* 先檢查棧是否為空 */ && B[ix_b] == stack[top])
  {
   printf("out\n");
   --tot;
   --top;
   ++ix_b;
   if(ix_b == len_b)
    break;
  }
  else if(ix_a != len_a)
  {
   printf("in\n");
   ++tot;
   ++top;
   stack[top] = A[ix_a];
   ++ix_a;
   if(ix_b == len_b)
    break;
  }
  else
  {
   printf("無解!\n");
   return 0;
  }
 }
 printf("完成!\n");
 return 0;
}

希望本文所述對(duì)大家的C++程序設(shè)計(jì)有所幫助。

上一篇:C++實(shí)現(xiàn)圖的鄰接矩陣存儲(chǔ)和廣度、深度優(yōu)先遍歷實(shí)例分析

欄    目:C語(yǔ)言

下一篇:C字符串操作函數(shù)實(shí)現(xiàn)方法小結(jié)

本文標(biāo)題:C++基于棧實(shí)現(xiàn)鐵軌問題

本文地址:http://www.jygsgssxh.com/a1/Cyuyan/3095.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有