杭電acm1022(用棧進行配對)

2022-05-17 17:50:04 字數 787 閱讀 3824

剛開始想著用陣列逐個進行判斷,但是發現非常麻煩,得記錄較多變數,當然,也可能自己太菜了,。。。下學期開始時學到了棧,感覺情形很像,就想著用棧來做,一邊存入,一邊和另乙個字串,也就是o2進行比較,一旦有相同的,就出棧,這樣能很全面的按照o2的順序輸出了,當最後棧頂元素為空時,就是可以按順序輸入,輸出了,另外,用乙個陣列來儲存每一次的進棧和出棧,最後輸出「in」和「out」

view code

1 #include2 #include3 typedef struct

node1zh;

7 typedef struct

node2tou;//

棧頂結構

10 tou *creat()//

初始化棧

1117

void push(tou *s,char a)//

進棧 18

25void take(tou *s)//

出棧 26

32 tou *s;

33int

main()

3452

if(s->top->s==out

[j])

5360}61

}626364

if(s->top!=null)

65 printf("

no.\n");

66else

73 printf("

finish\n");

74}75return0;

76 }

這題算是用棧進行記錄的標誌性成功^_^

杭電ACM題目分類

基礎題 1000 1001 1004 1005 1008 1012 1013 1014 1017 1019 1021 1028 1029 1032 1037 1040 1048 1056 1058 1061 1070 1076 1089 1090 1091 1092 1093 1094 1095 1...

杭電acm 排列2

這題的核心演算法就是排列問題 就目前常用的排列演算法有兩種 一種是按字典列出排序,c stl所使用的方法,能夠支援重複元素的全排列。另外一種是使用遞迴生成排序。先說容易理解的一種方法,使用遞迴生成排序 例如1,2,3,4,這個序列。最開始,也就是遞迴最外層我們可以將其分成 1 2,3,4,2 1,3...

杭電1022題 火車進出站

題目鏈結 這個題是資料型別 棧的實際應用,思路如下 對棧和陣列in,out的處理 三種情況 把出站序列中的元素和棧中的元素進行比較,而不是和進站序列比較 如果棧為空則處理第乙個資料 並且要保證能退出迴圈 如果棧不空並且不等於當前出站序列中的數字,則必須再將後面的標號入棧 如果棧不為空,並且棧頂元素等...