C語言資料結構第三章 鍊錶棧

2021-10-02 21:30:22 字數 1302 閱讀 5225

熟練度*n,多寫寫就對鍊錶的內容更加清楚了

在建的時候有點猶豫用node p改的資料能不能在list裡也有改

list的amount沒傳回去?為什麼啊…我直接用它的plist->amount++了!

要在指標裡邊的操作改動的資料才會傳回去,不然就是有點像讀取位址上的數值後對數值進行的操作了。

但是操作是會留下來的,就是p對head的next操作,數鏈上的節點會留下來

在init數鏈的時候忘了讓 p = p->next 了

想明白了,對傳過來的指標或者同級指標進行操作才有用,才能返回到之前的函式。如果對指標用*取的值操作,只能影響到傳回去的下級指標,對這一層指標沒用

棧只是棧頂來做插入和刪除操作,棧頂放在鏈棧的頭部還是尾部呢?

由於單鏈表有頭指標,而棧頂指標也是必須的,那幹嗎不讓它倆合二為一呢?

所以比較好的辦法是把棧頂放在單鏈表的頭部

結構體存資料和next的node,存節點和head的list

寫輸入函式

我這次是直接把兩個結構體建立了,然後把list引到函式裡

list list =

*plist;

// 2020/2/14 鍊錶棧

#include

#include

typedef

struct nodenode;

typedef

struct listlist;

void

init_stack

(list *plist)

;void

print_stack

(list *plist)

;void

add_data

(list *plist)

;void

pop_data

(list *plist)

;int

main()

void

init_stack

(list *plist)

}while

(input!=-1

);plist->amount = list.amount;

}void

print_stack

(list *plist)

}void

add_data

(list *plist)

void

pop_data

(list *plist)

資料結構 第三章 鍊錶

靜態操作 get search 動態操作 insert remove 靜態儲存 如向量,物理次序與邏輯次序嚴格一致,在靜態操作上迅速,動態慢,get o 1 search o logn 動態儲存 如果鍊錶,動態的分配和 記憶體空間 鍊錶中,相鄰結點互稱為前驅和後繼,鍊錶一般採用循位置訪問 鍊錶的端點...

資料結構之第三章 棧

出棧特點 後進先出 最近忙著準備期末的考試,要知道大學生掛科是一件很可怕的事情。先將一點棧的知識記錄下來,一學期過了課本啥的也就丟了。棧是一種只能在一端進行刪除插入或刪除操作的線性表。棧中的資料元素的邏輯關係呈線性關係,所以棧可以和線性表一樣採用順序儲存結構進行儲存。採用順序儲存結構的棧稱為順序棧。...

資料結構導論 第三章棧)

棧和佇列可看作是特 殊的線性表,它們是 運算受限的線性表 定義 棧是只能在表的一端 表尾 進行 插入和刪除的線性表 特點 後進先出 棧中元素按a1,a2,a3,an的次序進棧,出棧的第乙個元素應 為棧頂元素。換句話說,棧的修改是按後進先出的原則進行的。因此,棧稱為後進先出線性表 lifo 棧的用途 ...