資料結構關於棧top指標位置問題

2022-11-03 14:56:57 字數 822 閱讀 4469

1樓:圭茜茜常墨

1、空棧的時候top=base-1,就是棧外了。

2、入棧的時候先top++,然後將元素push入棧,所以「非空棧中的棧頂指標始終在棧頂元素的下一個位置」是正確的,但更應該理解為將要入棧位置的前一個位置(目前的棧頂元素位置)。

3、棧空判斷top==-1,這樣的判斷沒見過。有也應該是((top-base)==-1),或者top<=(base-1)

但更一般的情況是用base是否為空來判斷,而不是top

2樓:何寒蕾掌燁

首先有錯誤

top是個指標,應該是s->top=null;

還有我要說的是後面的malloc有問題?

我還從沒見過p=malloc(sizeof*s)typedef

struct

snode

*slink;//替換,後面的link為structsnode

*型的typedef

struct

snode

stack

node;//定義一個struct

snode

型的結構體,並用stack

node替換

slink

newstacknode()//

新建一個棧結點的結構體

typedef

struct

lstack

*stack;//一樣是替換

typedef

struct

istack//定義棧結構體

lstack

;stack

stackinit()//新建棧

資料結構棧求解

1.建個堆疊,遇到 就看現在棧頂裡放的跟遇到的是不是匹配。是,出棧,不是,報錯。2.如果遇到 棧為空,報錯 3.所有輸入完成時棧不為空,報錯 const ok ok wrong wrong ans array false.true of string wrong,ok zuo you vars st...

c語言資料結構中鏈棧的問題,C語言資料結構中鏈棧的問題

這個鏈棧應該bai就是一個du 用連結串列弄的後進先出的 zhi棧結構dao。top指標永遠指向棧的最上面的回那個節點。這個函式是新加一個節點到這個棧中,首先分配了空間給s,s是要新加入這個棧的那個節點。s next top 就是讓s指向棧的最上面的那個元素。top s 因為現在最上面的節點是s了,...

關於資料結構進棧和出棧的問題望賜教(就剩20分了,您別嫌少)

和 這種操作符!放在變數的前面為 如i 1 等式 i 2 4 是先計算這個值,再執行等式的!而 i 2 3 是先計算等式,之後再計算i的值,等式計算後i的值才是 2 進棧 s elem s top 程式內部會這樣分為兩步執行 s elem s top s top s top 1 出棧 s elem ...