棧簡易教程

2021-08-30 02:12:02 字數 1094 閱讀 3378

基本概念

只能從線性表的一端進行插入和刪除元素操作的資料結構即為棧。

應用場景

根據概念我們就可以得出,凡是只在資料結構一端進行插入刪除的,並且不需要支援隨機訪問的場景就可以採用棧結構。

下面列舉一些棧的使用場景: 分類

按照**實現,可以分為兩類:順序棧鏈式棧。前者是基於順序表實現的,後者是基於鍊錶實現的。

以下方法用鏈式棧實現,可以實現動態增長

定義節點

每個節點都有兩個域:數值域指標域

typedef int datatype;

typedef struct stacknode stack;

壓棧

這裡採用鏈式棧的頭插操作,因為時間複雜度為o(1),如果採用尾插,時間複雜度為o(n)。

步驟:

void

push

(stack *

*stack, datatype elem)

**注意:**第乙個引數是乙個二級指標,原因是需要在函式內部更改外部指標的指向。指標也是乙個變數,如果需要在函式內部修改外部變數的值,引數就要傳遞外部變數的位址,一級指標的位址就是二級指標。

出棧這裡採用鏈式棧的頭刪操作,因為時間複雜度為o(1),如果採用尾刪,時間複雜度為o(n)。

步驟:

void

pop(stack *

*stack)

stack *tmp =

*stack;

*stack =

(*stack)

->_next;

free

(tmp)

;}

獲取棧頂
stack*

top(stack* stack)

Vi 簡易教程

vi file1 file2 此時,您會發現您面對如下視窗 圖 4.4.vim 開始 您現在是在開啟的第乙個檔案的最前面,並處於 命令模式 在此模式下,您不能往檔案中插入文字。要插入文字,您需要先切換到 插入模式 以下是一些插入文字的快捷方式 在插入模式中,您會在螢幕底部看到 插入 字串 提示您所處...

Vim簡易教程

vim時linux內建的一款可定製的文字編輯器,使用者可以根據自己的需求對其進行功能的補充。要對文字內容進行編輯,需要按下 i,i,o,o,a,a,r,r 這些鍵中的任意乙個,此時vi編輯器將處於編輯狀態,使用者便可對文字進行需要的修改。下面對這個開啟編輯模式的鍵進行簡單的介紹 命令含義 i進入編輯...

svn簡易教程

主要以debian linux 為例,使用以下命令安裝svn tl debian sudo apt get install subversion 安裝完成後,檢視安裝的svn版本 tl debian svn version tl debian mkdir svn tl debian svnadmin...