資料結構鏈棧出棧的函式有問題,幫忙改一下!(C語言裡面取地址

2021-04-20 16:52:41 字數 1534 閱讀 3637

1樓:jw木有道理

flag=pop(s,&e);這裡不該這樣呼叫,直抄接使用flag=pop(s,e);

函式定義裡&表示引用實參,也即是說使用e物件本身進行運算,而如果沒有&則是使用e物件的拷貝進行運算

關於資料結構(c語言)鏈棧的問題

2樓:匿名使用者

你的while迴圈寫錯了,你想借助s遍歷,但是迴圈條件用的還是top,而top在迴圈內部沒有修改,所以專就進入死循屬環了,應該這麼改:

while(s!=null) //用s

還有,print函式應該是不想修改鏈棧的吧,只是讀取。所以引數就不要用a的地址了,直接用a傳遞就行了,保證函式體內不會意外修改a。函式引數要做相應的修改。

像這樣:都不用額外借助一個s了。

void print(coffee *top)}用print(a);呼叫就好了。

有問題hi聯絡。

3樓:豆品姜河靈

第一步是將值賦給開闢的節點,第二三步是利用頭插法將節點插入連結串列,第三步還有就是top也是棧頂的指標

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

4樓:充實生活

這個鏈棧應該bai就是一個du

用連結串列弄的後進先出的

zhi棧結構dao。top指標永遠指向棧的最上面的回那個節點。

這個函式是新加一個節點到這個棧中,首先分配了空間給s,s是要新加入這個棧的那個節點。

s->next=top;就是讓s指向棧的最上面的那個元素。top=s;因為現在最上面的節點是s了,所以讓top指向s,使s成為棧頂指標。返回的就是棧的頂上那個節點的指標。

這答樣迴圈呼叫這個函式就可以不斷的新增新節點,加入的新節點總是指向前面的那個節點,同時新加入的節點成為頭節點。

5樓:匿名使用者

linkstack push_linkstack(linkstack top, datatype x)

關於c語言的鏈棧的出棧問題

6樓:匿名使用者

: 是。但這只是演算法描述,將需要的所有定義都省略了,只留下核心**,也不能算錯。

7樓:匿名使用者

取決於連結串列是否帶頭節點

如果是帶頭節點的連結串列,頭節點不動,用後一種方法

不帶頭節點的,那麼第一個節點被替換,用前一種方式

資料結構(c語言版)**不理解啊,例如函式形參裡什麼時候該加取地址符號,還有指標指來指去的,用指標 30

8樓:匿名使用者

函式形式引數用指標主要兩個情況,第一,為了函式中修改的內容帶回,第二,提高結構體等複雜引數傳遞效率

9樓:日向蘭蘭

都是那麼過來的,硬記

10樓:vi六

你沒有理解記憶體的管理和指標的原理

資料結構中的順序棧的進棧和出棧問題

include define stacksize 100typedef char datatype typedef struct seqstack void initstack seqstack s int stackempty seqstack s int stackfull seqstack s...

關於資料結構c語言鏈棧的問題

你的while迴圈寫錯了,你想借助s遍歷,但是迴圈條件用的還是top,而top在迴圈內部沒有修改,所以專就進入死循屬環了,應該這麼改 while s null 用s 還有,print函式應該是不想修改鏈棧的吧,只是讀取。所以引數就不要用a的地址了,直接用a傳遞就行了,保證函式體內不會意外修改a。函式...

支援子程式呼叫的資料結構是A 棧B 樹C 佇列D 二叉樹

參考書答案給的是a,我也在看這道題!額 理論上來說所有資料結構都支援子程式的呼叫。這個題的意思應該是子程式呼叫的時候能看成什麼樣的資料結構。嚴格來說是棧 因為遞迴呼叫子程式的時候就是先入後出的而且是線性的。雖然子程式也可以這樣呼叫 f i f i 1 f i 1 看起來像是樹,但是實際上還是深度優先...