看板 TL
作者 標題 [筆記][問題] stack反字串
時間 2013年01月27日 Sun. PM 06:22:10
看板 C_and_CPP
作者 標題 [問題] stack反字串
時間 Tue Nov 8 12:18:28 2005
我看到個範例 有人可以幫我解釋一下嗎??
因為有點不懂
#include <iostream>
#include <cstdlib>
using namespace std;
struct stack
{
char val;
struct stack* nex;
} *top=NULL;
void push(char);
int main()
{
char input;
cout << "請輸入一個字串:";
while((input=cin.get())!='\n')
push(input);
cout << "反轉字串:";
stack* pShow=top;
while(pShow!=NULL)
{
cout << pShow->val;
pShow=pShow->nex;
}
system("pause");
return 0;
}
void push(char value)
{
if(top==NULL)
{
stack* tmp=new stack;
tmp->val=value;
tmp->nex=NULL;
top=tmp;
}
else
{
stack* tmp=new stack;
tmp->val=value;
tmp->nex=top;
top=tmp;
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.112.218.8
推 :@@ 哪裏不懂....1F 11/08 13:16
推 :TMP->VAL=VALUE....有關全部NULL的地�2F 11/08 13:40
> -------------------------------------------------------------------------- <
看板 C_and_CPP
作者 標題 Re: [問題] stack反字串
時間 Tue Nov 8 21:14:23 2005
※ 引述《mcdino (親愛的呆諾)》之銘言:
: 我看到個範例 有人可以幫我解釋一下嗎??
: 因為有點不懂
: #include <iostream>
: #include <cstdlib>
: using namespace std;
: struct stack
: {
: char val;
: struct stack* nex;
: } *top=NULL;
一開始的top 是一個NULL 用 … 表示 ....
如果不是null的stack,用 □ 表示
-> 表示連結
: void push(char);
push在做的事情....
1.當top為NULL的時候,建立一個stack塞入資料,然後尾巴指向NULL
… ==> □->…
∣ ∣
top top
2.當top不是NULL的時候,同樣建一個stack塞入資料,然後尾巴指向舊的top,
並指向新的top
□->… ==> □->□->…
∣ ∣
top top
: void push(char value)
: {
: if(top==NULL)
: {
: stack* tmp=new stack;
: tmp->val=value;
: tmp->nex=NULL;
: top=tmp;
: }
: else
: {
: stack* tmp=new stack;
: tmp->val=value;
: tmp->nex=top;
: top=tmp;
: }
: }
接著來看main吧
: int main()
: {
: char input;
: cout << "請輸入一個字串:";
: while((input=cin.get())!='\n')
: push(input);
從上面應該可以看出來,input會成為一個
□->□->□->□->… 這樣的結構 最後會指向一個null …
∣
top
: cout << "反轉字串:";
: stack* pShow=top;
*pShow指向top 也就是最前面的那個 □
: while(pShow!=NULL)
: {
: cout << pShow->val;
: pShow=pShow->nex;
: }
讓pShow沿著->一個一個找到最後一個
那最後一個會是什麼呢... 就是尾巴… 的前面那一個□
所以當pShow 為NULL 就是沒東西了 這就是while裏面的條件
pShow != NULL 也是為什麼要先cout後 再用pShow=pShow->nex; 移位
: system("pause");
: return 0;
: }
--
或許人生是一段整合內在的自己
並尋求人間一點真情的過程吧
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.167.214.33
--
Shaken, Not Stirred.
--
※ 作者: TL 時間: 2013-01-27 18:22:10
※ 看板: TL 文章推薦值: 0 目前人氣: 0 累積人氣: 24
回列表(←)
分享