① 出棧和壓棧 應如何理解
堆棧是RAM中劃出的一片抄特殊存儲區,用於臨時存放一些重要數據(這些數據存放一會後是必須回到原位的),其中數據的位置由堆棧指針確定,而數據的存放和讀取則由入棧指令和出棧指令控制,入出必須對應成對的使用才能使壓入的數據正確的回到壓入前的位置。
比如:當前正在運行某程序,要調用一個子程序,而子程序中會用到A、B、C三單元,主程序中這三個單元中現有的信息在子程序運行結束後還要繼續用的,那麼就需要用堆棧臨時保存這些數據,等子程序結束後再還原。入棧時是壓入A、壓入B、壓入C,出棧則必須是出C、出B、出A。這就好比子彈夾,先壓進去的子彈在下,後壓進去的在上,子彈進入槍膛(相當於出棧)則是相反,先上面後下面,正如一樓「一疊盤子」的比喻。這種用法的約定,是堆棧本身特性決定的,必須遵守。
② 出棧順序
使用深度搜索(廣度搜索)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 20
char stack[MAX], out[MAX], str[MAX];
void DFS(int p, int o, int t, char *s)
{
char st[MAX];
strcpy(st, s);
if(!str[p]){
while(t--)
out[o++]=st[t];
puts(out);
return;
}
if(t){
out[o] = st[t-1];
DFS(p, o+1, t-1, st);
}
if(str[p]){
st[t] = str[p];
DFS(p+1, o, t+1, st);
}
}
int main( void )
{
scanf("%s", str);
DFS(0, 0, 0, str);
return 0;
}
這是在網上找到的:http://blog.chinaunix.net/u/20816/showart_138288.html可以參考一下
③ 壓棧 和 出棧 是什麼意思啊`
可以理解成機槍的彈夾,彈夾就是一個棧,子彈一顆一顆壓進去,就是壓棧,有個順序特點就是先進後出,後進先出,出棧就是子彈裝號了一顆一顆打出來,棧的清理就是把彈夾清空,清掉彈夾里的子彈。堆棧就是把子彈放到彈夾里,堆在那裡了,實際意思都差不多。
C語言里棧就可以用數組來做,把數據像子彈一樣壓數組里就是了。
④ C語言中什麼是出棧
棧是一種數據結構,一個棧相當於一個盒子,把東西(數據)放入盒子專里的過程叫做入棧屬,把東西從盒子里取出來的過程叫做出棧。棧還有一個特殊的規則,就是先進後出,即盒子里的東西只能疊加擺放,放進去的下一件東西只能堆在前一件東西的上面,取出時只能先取出盒子最上面的一件東西。出棧也就是將棧指針所指的數據從棧中彈出的過程,每一次出棧的一定是棧頂元素,出棧後棧指針向下移動一位指向下一個元素。習慣上入棧用PUSH表示,出棧用POP表示。
⑤ 進棧,出棧的詳細知識
只要遵循「先進棧後出棧」原則即可。哪個先進棧,哪個便後出棧。回對於A項的棧的進出答順序是:F進,E進,E出,D進,D出,C進,C出,F出,B進,A進,A出,B出。以此類推其它的。C是錯誤的。F不可能在E前出棧。
⑥ 壓棧、出棧、棧的清理和堆棧都是什麼呢
可以理解成機槍的彈夾,彈夾就是一個棧,子彈一顆一顆壓進去,就是壓棧,有個順序內特點就是先進後出,容後進先出,出棧就是子彈裝號了一顆一顆打出來,棧的清理就是把彈夾清空,清掉彈夾里的子彈。堆棧就是把子彈放到彈夾里,堆在那裡了,實際意思都差不多。
C語言里棧就可以用數組來做,把數據像子彈一樣壓數組里就是了。
⑦ 入棧出棧 求解釋啊。。。
棧的特抄點是先進後出,即襲:進去的早,出來的晚!
54321進棧,5在棧底,1在棧頂!
出一次棧,則棧頂的1先出來,2成為新的棧頂。
ABCD入棧,D成為新的棧頂。
全部出棧:D C B A 2 3 4 5
綜上,所有元素退棧順序為:1 D C B A 2 3 4 5
⑧ 如何實現進棧出棧
程序基本上沒什麼樣問題,
scanf("%d",&a[i]); 是輸入integer, 如果你輸入'#' scanf 就會出錯導內致程序不能正常執容行
有2種方法
1。 把輸入Integer改為string輸入,在轉化成integer 做處理,你就可以」#「為結束字元
2。把 if(a[i]=='#') 改為 if(a[i]<0), 檢測輸入負值為結束表述
⑨ 棧元素出棧和棧元素輸出有什麼區別
1、首先明確一定:「棧」通常指的是:先進後出的線性數據結構
2、棧元素出棧:會將回最先保存的數據最後答輸出 (倒序)
3、棧元素輸出:直接輸出棧對象實際上輸出的是保存順序
4、在Android開發之中,多個Activity之間的互調用和返回就是利用了棧。
⑩ 如何理解「入棧、讀棧、出棧」
入棧是指將前面的電路塊的結果存入臨時寄存器,需要與後面的電路共同作用時用讀棧指令,最後輸出用出棧指令,雖然都要是並聯輸出,但讀棧與出棧指令都有相關的元件或電路塊與前面的臨時結果共同作用再產生輸出