C C 回文字串的判定 使用鏈棧與佇列

2021-08-28 13:46:29 字數 2602 閱讀 7112

但是任何**都是要有用處才可以吸引我們的興趣,給我們繼續前進的動力。

那麼下面就來介紹如何使用鏈棧來解決回文數問題。

時空門--->>>鏈棧與鏈隊(^_−)☆

(已省略注釋)

#include #include #include #include using namespace std;

typedef struct node

linkstack;

linkstack * initlinkstack()

h->data = '\0';

h->link = null;

return h;

}void pushstack(linkstack *h, char number) //入棧

s->data = number;

s->link = null;

p->link = s;

}char popstack(linkstack *h)

linkstack *p, *temp;

p = h;

if (!(temp = (linkstack*)malloc(sizeof(linkstack))))

while (p->link->link)

temp = p->link;

temp_number = p->link->data;

p->link = p->link->link;

free(temp);

// cout << endl << "pop " << temp_number << " successful!";

return temp_number;

}int _tmain(int argc, _tchar* argv)

cout << endl;

cout << "☆huiwen_judge: " << endl;

p = h;

for (int i = 0; i < n/2; i++)

p = p->link;

} if (flag == 0)

return 0;

}

(∑(っ°д°;)っ啊嘞,被你發現了 ,好吧好吧,我招了~這就是我直接基於上篇文章中的鏈棧直接改的~)

下面混合使用棧與佇列來處理回文數問題:

思路:

由於棧與佇列分別是從其所在的鏈上的兩端輸出,

所以根據這個性質可以建立乙個棧和乙個佇列,使得二者使用的是同乙個「鍊錶」;

然後在主函式中對返回的值進行迴圈比較即可。

附上**:

#include #include #include using namespace std;

typedef struct node

linkstack, linkqueue;

linkstack * initlinkstack()

h->data = '\0';

h->link = null;

return h;

}void pushstack(linkstack *h, char number) //入棧

s->data = number;

s->link = null;

p->link = s;

}char popqueue(linkqueue *h) //出隊,使用返回值帶出彈出的值

linkqueue *p, *temp;

p = h;

if (!(temp = (linkqueue*)malloc(sizeof(linkqueue))))

temp = p->link;

temp_number = p->link->data;

p->link = p->link->link;

free(temp);

return temp_number;

}char popstack(linkstack *h) //出棧,使用返回值帶出彈出的值

linkstack *p, *temp;

p = h;

if (!(temp = (linkstack*)malloc(sizeof(linkstack))))

while (p->link->link)

temp = p->link;

temp_number = p->link->data;

p->link = p->link->link;

free(temp);

return temp_number;

}int _tmain(int argc, _tchar* argv)

cout << endl;

cout << "☆huiwen_judge: " << endl;

p = h;

for (int i = 0; i < n / 2; i++)

p = p->link;

} if (flag == 0)

return 0;

}

☆僅僅記錄日常編寫** 與 疑問(`・ω・´)

C,C 回文字串判斷(字串指標的用法)

功能 輸入乙個字串,判斷是否為回文。主要鍛鍊指標的用法。1.c版 include int main char he 100 char a int i 0,flag 1 while a getchar n he i a i int n i for i 0 i getchar 函式依次獲取乙個輸入,並賦...

C,C 回文字串判斷(字串指標的用法)

功能 輸入乙個字串,判斷是否為回文。1.c語言版 includeint main int n i for i 0 i c t c n he i he n 1 i if he i he n 1 i if flag 1 return 0 getchar 函式依次獲取乙個輸入,並賦給char型變數a,再通...

ValidPalindrome(回文字串的判斷)

author lemonlin description strin alidpalindrome date 2019 5 9 16 40 given a string,determine if it is a palindrome,considering only alphanumeric char...