棧和佇列之鏈棧的基本實現

2021-09-23 20:25:22 字數 1268 閱讀 8385

將鏈棧的頭部作為棧頂就很方便了,而且不必設定頭結點,每次插入都是將結點設定為棧頂元素,每次刪除都是將棧頂元素刪除。

具體實現如下:

建立乙個空鏈棧:

void initlinkstack(linkstack s)        //與其他鍊錶不一樣的是,這裡不需要建立乙個頭結點

入棧:

void push(linkstack &s,user user)

出棧:

user pop(linkstack &s)

user=s->user;

linkstack p=s;

s=s->next; //將棧頂指標下移一位

delete(p);

return user;

}

取出棧頂元素

user gettop(linkstack s)

}

這裡提供乙份完整原始碼:

#includeusing namespace std;

typedef struct

user;

typedef struct stacknode

stacknode,*linkstack;

//建立乙個空鏈棧

void initlinkstack(linkstack s) //與其他鍊錶不一樣的是,這裡不需要建立乙個頭結點

//入棧

void push(linkstack &s,user user)

//出棧

user pop(linkstack &s)

user=s->user;

linkstack p=s;

s=s->next; //將棧頂指標下移一位

delete(p);

return user;

}//取出棧頂元素

user gettop(linkstack s)

}int main()

{ linkstack s;

user user;

//初始化鏈棧

initlinkstack(s);

//入棧

user.id=0;

strcpy(user.username,"gjw");

push(s,user);

//出棧

user=pop(s);

cout《至此,鏈棧的基本操作就弄完了

演算法設計 鏈棧和鏈佇列 鏈棧和鏈佇列的實現

1.鏈佇列。利用帶有頭結點的單鏈表來實現鏈佇列,插入和刪除的複雜度都為o 1 include include typedef struct qnode qnode typedef struct linkqueue linkqueue void initialize linkqueue linkque...

棧和佇列(基本實現)

1 定義 棧 stack 是一種常用的重要資料結構 線性表 它只允許在棧頂 top 進行刪除,插入,由於其具有後進先出的特性,又被叫做後進先出線性表。2.常用 儲存方式 1.順序儲存方式 2.鏈式儲存方式 順序棧 是指用順序儲存方式儲存的棧,絕大多數情況下是用陣列來進行儲存。這種儲存方式會由乙個ma...

順序棧 鏈棧 迴圈佇列 鏈隊基本操作的實現

一 實驗學時 2學時 二 實驗目的 三 實驗內容 順序棧的建立 取棧頂元素 入棧 出棧 佇列的建立 取隊中元素 入隊 出隊 迴圈佇列中入隊 出隊操作 四 主要儀器裝置及耗材 五 實驗步驟 分析問題 寫出演算法 編制程式 上機除錯 分析結果 六 程式清單 1.順序棧 include include d...