http://kktzf.com.cn/wiki/history/%E5%A0%86%E6%A0%88?feed=atom
狠狠久久亚洲欧美专区,久99久无码精品视频免费播放,精品综合久久久久久97超人
2025-07-20T19:29:54Z
本wiki上該頁面的版本歷史
MediaWiki 1.39.3
http://kktzf.com.cn/wiki/%E5%A0%86%E6%A0%88?diff=110367&oldid=prev
2012年6月5日 (二) 09:58 尋找
2012-06-05T09:58:20Z
<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="zh-Hans-CN">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">←上一版本</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">2012年6月5日 (二) 17:58的版本</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l3">第3行:</td>
<td colspan="2" class="diff-lineno">第3行:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*推入(push):將數(shù)據放入堆棧的頂端(陣列形式或串行形式),堆棧頂端top指標加一。 ?</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*推入(push):將數(shù)據放入堆棧的頂端(陣列形式或串行形式),堆棧頂端top指標加一。 ?</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*彈出(pop):將頂端數(shù)據資料輸出(回傳),堆棧頂端資料減一。</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*彈出(pop):將頂端數(shù)據資料輸出(回傳),堆棧頂端資料減一。</div></td></tr>
<tr><td class="diff-marker" data-marker="?"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>==<del style="font-weight: bold; text-decoration: none;">簡介</del>==</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>==<ins style="font-weight: bold; text-decoration: none;">堆棧簡介</ins>==</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[動態(tài)數(shù)據]]區(qū)一般就是“堆棧”。“棧(stack)”和“堆(heap)”是兩種不同的動態(tài)數(shù)據區(qū),棧是一種線性結構,堆是一種鏈式結構。進程的每個線程都有私有的“?!保悦總€線程雖然[[代碼]]一樣,但本地變量的數(shù)據都是互不干擾。一個堆??梢酝ㄟ^“基地址”和“棧頂”地址來描述。全局變量和靜態(tài)變量分配在靜態(tài)數(shù)據區(qū),本地變量分配在動態(tài)數(shù)據區(qū),即堆棧中。[[程序]]通過堆棧的基地址和偏移量來訪問本地變量。</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[動態(tài)數(shù)據]]區(qū)一般就是“堆?!薄!皸?stack)”和“堆(heap)”是兩種不同的動態(tài)數(shù)據區(qū),棧是一種線性結構,堆是一種鏈式結構。進程的每個線程都有私有的“?!保悦總€線程雖然[[代碼]]一樣,但本地變量的數(shù)據都是互不干擾。一個堆??梢酝ㄟ^“基地址”和“棧頂”地址來描述。全局變量和靜態(tài)變量分配在靜態(tài)數(shù)據區(qū),本地變量分配在動態(tài)數(shù)據區(qū),即堆棧中。[[程序]]通過堆棧的基地址和偏移量來訪問本地變量。</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==堆棧原理==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==堆棧原理==</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l119">第119行:</td>
<td colspan="2" class="diff-lineno">第119行:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*http://baike.baidu.com/view/93201.htm</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>*http://baike.baidu.com/view/93201.htm</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[category:數(shù)據結構|D]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[category:數(shù)據結構|D]]</div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">[[category:計算機術語|D]]</ins></div></td></tr>
<!-- diff cache key wiki-zz_:diff::1.12:old-109258:rev-110367 -->
</table>
尋找
http://kktzf.com.cn/wiki/%E5%A0%86%E6%A0%88?diff=109258&oldid=prev
2012年5月5日 (六) 03:15 尋找
2012-05-05T03:15:37Z
<p></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="zh-Hans-CN">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">←上一版本</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">2012年5月5日 (六) 11:15的版本</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l6">第6行:</td>
<td colspan="2" class="diff-lineno">第6行:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[動態(tài)數(shù)據]]區(qū)一般就是“堆棧”?!皸?stack)”和“堆(heap)”是兩種不同的動態(tài)數(shù)據區(qū),棧是一種線性結構,堆是一種鏈式結構。進程的每個線程都有私有的“?!?,所以每個線程雖然[[代碼]]一樣,但本地變量的數(shù)據都是互不干擾。一個堆??梢酝ㄟ^“基地址”和“棧頂”地址來描述。全局變量和靜態(tài)變量分配在靜態(tài)數(shù)據區(qū),本地變量分配在動態(tài)數(shù)據區(qū),即堆棧中。[[程序]]通過堆棧的基地址和偏移量來訪問本地變量。</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[動態(tài)數(shù)據]]區(qū)一般就是“堆?!?。“棧(stack)”和“堆(heap)”是兩種不同的動態(tài)數(shù)據區(qū),棧是一種線性結構,堆是一種鏈式結構。進程的每個線程都有私有的“棧”,所以每個線程雖然[[代碼]]一樣,但本地變量的數(shù)據都是互不干擾。一個堆棧可以通過“基地址”和“棧頂”地址來描述。全局變量和靜態(tài)變量分配在靜態(tài)數(shù)據區(qū),本地變量分配在動態(tài)數(shù)據區(qū),即堆棧中。[[程序]]通過堆棧的基地址和偏移量來訪問本地變量。</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==堆棧原理==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==堆棧原理==</div></td></tr>
<tr><td class="diff-marker" data-marker="?"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">堆棧是一種執(zhí)行“后進先出”算法的</del>[[數(shù)據結構]]。 ?</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">堆棧是一種執(zhí)行“后進先出”[[算法]]的</ins>[[數(shù)據結構]]。 ?</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>它是在內存中開辟一個存儲區(qū)域,[[數(shù)據]]一個一個順序地存入(也就是“ 推入——push”)這個區(qū)域之中。有一個地址指針總指向最后一個壓入堆棧的數(shù)據所在的數(shù)據單元,存放這個地址指針的寄存器就叫做堆棧指示器。開始放入數(shù)據的單元叫做“棧底”。數(shù)據一個一個地存入,這個過程叫做“壓?!薄T趬簵5倪^程中,每有一個數(shù)據壓入堆棧,就放在和前一個單元相連的后面一個單元中,堆棧指示器中的地址自動加1。讀取這些數(shù)據時,按照堆棧指示器中的地址讀取數(shù)據,堆棧指示器中的地址數(shù)自動減1。這個過程叫做“彈出pop”。</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>它是在內存中開辟一個存儲區(qū)域,[[數(shù)據]]一個一個順序地存入(也就是“ 推入——push”)這個區(qū)域之中。有一個地址指針總指向最后一個壓入堆棧的數(shù)據所在的數(shù)據單元,存放這個地址指針的寄存器就叫做堆棧指示器。開始放入數(shù)據的單元叫做“棧底”。數(shù)據一個一個地存入,這個過程叫做“壓?!?。在壓棧的過程中,每有一個數(shù)據壓入堆棧,就放在和前一個單元相連的后面一個單元中,堆棧指示器中的地址自動加1。讀取這些數(shù)據時,按照堆棧指示器中的地址讀取數(shù)據,堆棧指示器中的地址數(shù)自動減1。這個過程叫做“彈出pop”。</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==堆棧分類==</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==堆棧分類==</div></td></tr>
<!-- diff cache key wiki-zz_:diff::1.12:old-109256:rev-109258 -->
</table>
尋找
http://kktzf.com.cn/wiki/%E5%A0%86%E6%A0%88?diff=109256&oldid=prev
尋找:?以內容“'''堆棧'''(英文:stack),也可直接稱棧。在計算機科學中,是一種特殊的串行形式的數(shù)據結構,它的特殊之處在于只能...”創(chuàng)建新頁面
2012-05-05T03:10:14Z
<p>以內容“'''堆棧'''(英文:stack),也可直接稱棧。在<a href="/wiki/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6" title="計算機科學">計算機科學</a>中,是一種特殊的串行形式的<a href="/wiki/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84" title="數(shù)據結構">數(shù)據結構</a>,它的特殊之處在于只能...”創(chuàng)建新頁面</p>
<p><b>新頁面</b></p><div>'''堆棧'''(英文:stack),也可直接稱棧。在[[計算機科學]]中,是一種特殊的串行形式的[[數(shù)據結構]],它的特殊之處在于只能允許在鏈結串行或陣列的一端(稱為堆棧頂端指標,英文為top)進行加入資料(push)和輸出資料(pop)的運算。另外堆棧也可以用一維陣列或連結串行的形式來完成。堆棧的另外一個相對的操作方式稱為佇列。由于堆棧數(shù)據結構只允許在一端進行操作,因而按照后進先出(LIFO, Last In First Out)的原理運作。它是一種存儲部件,即[[數(shù)據]]的寫入跟讀出不需要提供地址,而是根據寫入的順序決定讀出的順序。<br />
堆棧數(shù)據結構使用兩種基本操作:推入(push)和彈出(pop)<br />
*推入(push):將數(shù)據放入堆棧的頂端(陣列形式或串行形式),堆棧頂端top指標加一。 <br />
*彈出(pop):將頂端數(shù)據資料輸出(回傳),堆棧頂端資料減一。<br />
==簡介==<br />
[[動態(tài)數(shù)據]]區(qū)一般就是“堆?!薄!皸?stack)”和“堆(heap)”是兩種不同的動態(tài)數(shù)據區(qū),棧是一種線性結構,堆是一種鏈式結構。進程的每個線程都有私有的“?!?,所以每個線程雖然[[代碼]]一樣,但本地變量的數(shù)據都是互不干擾。一個堆棧可以通過“基地址”和“棧頂”地址來描述。全局變量和靜態(tài)變量分配在靜態(tài)數(shù)據區(qū),本地變量分配在動態(tài)數(shù)據區(qū),即堆棧中。[[程序]]通過堆棧的基地址和偏移量來訪問本地變量。<br />
==堆棧原理==<br />
堆棧是一種執(zhí)行“后進先出”算法的[[數(shù)據結構]]。 <br />
它是在內存中開辟一個存儲區(qū)域,[[數(shù)據]]一個一個順序地存入(也就是“ 推入——push”)這個區(qū)域之中。有一個地址指針總指向最后一個壓入堆棧的數(shù)據所在的數(shù)據單元,存放這個地址指針的寄存器就叫做堆棧指示器。開始放入數(shù)據的單元叫做“棧底”。數(shù)據一個一個地存入,這個過程叫做“壓?!薄T趬簵5倪^程中,每有一個數(shù)據壓入堆棧,就放在和前一個單元相連的后面一個單元中,堆棧指示器中的地址自動加1。讀取這些數(shù)據時,按照堆棧指示器中的地址讀取數(shù)據,堆棧指示器中的地址數(shù)自動減1。這個過程叫做“彈出pop”。<br />
==堆棧分類==<br />
*'''陣列堆棧'''<br />
<pre>#include <stdio.h><br />
#include <stdlib.h><br />
/*堆疊資料結構*/<br />
struct Stack<br />
{<br />
int Array[10];//陣列空間<br />
int Top;//堆疊頂端指標 <br />
};<br />
/*檢查堆疊是否為空*/<br />
bool stack_empty(Stack *Stack1)<br />
{<br />
if(Stack1->Top==0)<br />
{<br />
return true; <br />
} <br />
else<br />
{<br />
return false; <br />
}<br />
}<br />
/*推入資料*/<br />
void push(Stack *Stack1,int x)<br />
{<br />
Stack1->Top=Stack1->Top+1;<br />
Stack1->Array[Stack1->Top]=x; <br />
}<br />
/*彈出資料*/<br />
int pop(Stack *Stack1)<br />
{<br />
if(stack_empty(Stack1))<br />
{<br />
printf("underflow");<br />
}<br />
else<br />
{<br />
Stack1->Top=Stack1->Top-1;<br />
return Stack1->Array[Stack1->Top+1]; <br />
}<br />
<br />
}<br />
int main()<br />
{<br />
struct Stack *Stack1=(struct Stack *)malloc(sizeof(struct Stack));//宣告資料結構空間<br />
Stack1->Top=0;//初始化<br />
push(Stack1,3);//推入3<br />
push(Stack1,4);//推入4<br />
push(Stack1,1);//推入1<br />
push(Stack1,10);//推入10<br />
printf("%d ",pop(Stack1));//彈出10<br />
printf("%d ",pop(Stack1));//彈出1<br />
printf("%d ",pop(Stack1));//彈出4<br />
system("pause"); <br />
}</pre><br />
*'''串行堆棧'''<br />
<pre>/*鏈棧的結構定義*/<br />
typedef struct { <br />
SLink top; // 棧頂指針 <br />
int length; // 棧中元素個數(shù)<br />
}Stack;<br />
<br />
void InitStack ( Stack &S )<br />
{ <br />
// 構造一個空棧 S<br />
S.top = NULL; // 設棧頂指針的初值為"空" <br />
S.length = 0; // 空棧中元素個數(shù)為0<br />
} // InitStack<br />
/*能否將鏈棧中的指針方向反過來,不行,如果反過來的話,刪除棧頂元素時,為修改其前驅指針,需要從棧底一直找到棧頂。*/ <br />
<br />
<br />
void Push ( Stack &S, ElemType e )<br />
{<br />
// 在棧頂之上插入元素 e 為新的棧頂元素<br />
p = new LNode; // 建新的結點<br />
if(!p) exit(1); // 存儲分配失敗<br />
p -> data = e;<br />
p -> next = S.top; // 鏈接到原來的棧頂<br />
S.top = p; // 移動棧頂指針<br />
++S.length; // 棧的長度增1<br />
} // Push<br />
/*在鏈棧的類型定義中設立"棧中元素個數(shù)"的成員是為了便于求得棧的長度。*/<br />
<br />
bool Pop ( Stack &S, SElemType &e )<br />
{ <br />
// 若棧不空,則刪除S的棧頂元素,用 e 返回其值,<br />
// 并返回 TRUE;否則返回 FALSE<br />
if ( !S.top )<br />
return FALSE; <br />
else <br />
{<br />
e = S.top -> data; // 返回棧頂元素 <br />
q = S.top; <br />
S.top = S.top -> next; // 修改棧頂指針 <br />
--S.length; // 棧的長度減1 <br />
delete q; // 釋放被刪除的結點空間<br />
return TRUE;<br />
}<br />
} // Pop<br />
</pre><br />
==相關詞條==<br />
*[[數(shù)據]]<br />
*[[數(shù)據結構]]<br />
*[[內存]]<br />
*[[程序]]<br />
*[[算法]]<br />
==參考來源==<br />
*http://zh.wikipedia.org/wiki/%E5%A0%86%E6%A0%88#.E5.A0.86.E7.96.8A.E7.9A.84.E6.87.89.E7.94.A8<br />
*http://blog.sina.com.cn/s/blog_4127ebcb0100096r.html<br />
*http://baike.baidu.com/view/93201.htm<br />
[[category:數(shù)據結構|D]]</div>
尋找