typedef struct stack_node
elemtype data ;
struct stack_node *next ;
} stack_node ;
(1) 棧的初始化
stack_node *init_link_stack(void)
stack_node *top ;
top=(stack_node *)malloc(sizeof(stack_node )) ;
top->next=null ;
return(top) ;
(2) 壓棧(元素進棧)
status push(stack_node *top , elemtype e)
stack_node *p ;
p=(stack_node *)malloc(sizeof(stack_node)) ;
if (!p) return error;
/* 申請新結點失敗,返回錯誤標誌 */
p->data=e ;
p->next=top->next ;
top->next=p ; /* 鉤鏈 */
return ok;
(3) 彈棧(元素出棧)
status pop(stack_node *top , elemtype *e)
/* 將棧頂元素出棧 */
stack_node *p ;
elemtype e ;
if (top->next==null ) return error ; /* 棧空,返回錯誤標誌 */
p=top->next ;
e=p->data ; /* 取棧頂元素 */
top->next=p->next ; /* 修改棧頂指標 */
free(p) ;
return ok ;
鏈式表示的棧 鏈式棧2 進製轉換
利用鍊錶模擬棧實現十進位制數2015轉換為對應的八進位制數。分析 一般情況下,把十進位制轉換為八進位制 二進位制等可以使用輾轉相除法,例如將十進位制數2015轉換為八進位制數的過程如圖。轉換後的八進位制數為 3737 在圖中,被除數除以8得到商數,記下餘數,又將商數作為新的被除數繼續除以8,直到商為...
棧的鏈式儲存
線性表的順序儲存來模擬棧時,在尾部新增或者刪除元素,不會涉及到陣列的元素大量移動 用線性表的鏈式儲存來模擬棧的線性儲存,在頭部新增或刪除,不用從頭到尾遍歷 linkstack.h ifndef my linkstack h define my linkstack h typedef void lin...
鏈式儲存mysql 鏈棧 棧的鏈式儲存結構
前面講完了棧的順序儲存結構,我們現在來看看棧的鏈式儲存結構,簡稱為鏈棧。鏈棧是沒有附加頭結點的運算受限的單鏈表。棧頂指標就是鍊錶的頭指標。棧是用棧頂來做插入和刪除操作,那麼對於鏈棧的棧頂放在鍊錶的頭部還是尾部呢?單鏈表有頭指標,而棧頂指標也是必須的,那幹嗎不讓它倆合二為一呢,所以比較好的辦法是把棧頂...