判斷迴文——棧實現
阿新 • • 發佈:2018-12-16
判斷迴文是一個很常見的使用棧(stack)來實現的小示例,它能夠很輕鬆的利用“棧”這種資料結構來實現。同時,他也很好的體現了“棧”設計的基本實現和實現方法。
下面來談一談“棧”的設計思想:棧就像是可比克薯片的桶裝的樣子,想要吃到薯片就必須從上往下依次吃,放回去也只能放到最頂端。即“先進後出”,“棧”要求只能從棧頂操作——入棧和出棧。
好了,下面附上C語言實現的一個應用“棧”的小示例:判斷迴文。
#include "stdio.h" #include "string.h" struct stack{ int a[100]; int top; }; int main() { int i, len, mid, next; struct stack s; s.top = 0; char a[100]; printf("輸入一個字串: "); gets(a); len = strlen(a); mid = len/2 - 1; for(i=0; i<mid; i++) { s.a[s.top] = a[i]; s.top++; } if(len%2 == 0) { next = mid + 1; } else { next = mid + 2; } for(i=next; i<len-1; i++) { if(a[i] != s.a[s.top]) break; s.top--; } if(s.top == 0) printf("YES!"); else printf("NO!"); return 0; }