鏈棧中的棧頂指標是不是頭指標,兩者有沒有區別?謝謝

2022-04-07 07:02:46 字數 848 閱讀 9000

1樓:匿名使用者

棧頂指標不是頭指標,兩者區別如下:

一、指代不同

1、棧頂指標:是在棧操作過程中,有一個專門的棧指標(習慣上稱它為top),指出棧頂元素所在的位置。

2、頭指標:是以確定線性表中第一個元素對應的儲存位置,用於處理陣列、連結串列、佇列等資料結構。

二、特點不同

1、棧頂指標:是一種特殊的線性表,是一種只允許在表的一端進行插入或刪除操作的線性表。表中允許進行插入、刪除操作的一端稱為棧頂。

表的另一端稱為棧底。棧頂的當前位置是動態的,對棧頂當前位置的標記稱為棧頂指標。

2、頭指標:頭指標指向連結串列第一個儲存位置,當存在頭結點時頭指標指向頭結點,這時如果刪除連結串列中的節點頭指標不會改變。

三、記憶體操作不同

1、棧頂指標:棧頂指標動態反映了棧中元素的變化情況。

2、頭指標:頭結點後,對在第一個元素結點前插入結點和刪除第一個結點,其操作與對其它結點的操作統一了。

2樓:

鏈棧其實也是連結串列的一種形式,頭指標始終指向表的第一個結點(或是頭結點),而棧頂指標則始終指向棧頂,建立連結串列時有一般有兩種方法:一種是頭插法,一種是尾插法。鏈棧也是一樣的,假設建立的棧沒有頭結點即第一個結點就開始儲存資料,按頭插法建棧時,頭指標就是棧頂指標,二者沒有區別;按尾插法建棧時,則頭指標就不是棧頂指標了,這時在建棧時就要再定義一個尾指標,讓它始終指向棧的最後一個元素(即最後進棧的元素),這樣該尾指標就是棧頂指標了。

3樓:匿名使用者

是頭指標,如果沒有表頭結點,則棧頂指標指向的就是第一個結點,也就是棧頂結點

如果有表頭結點,則棧頂指標指向的就是空的表頭結點,不過一般鏈棧實現沒有用頭結點

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

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

怎樣理解作業系統中「棧」的概念

1.因為方便,畢竟在棧中弄一塊資料只要給esp加點數字就行了,區域性變數不值錢。堆就麻煩多了。2.對。這是資料棧的一個內建實現。但是你對區域性變數的理解有誤區,區域性變數訪問靠的是ebp暫存器,如果你反彙編就會看到進入一個函式首先會 push ebp 儲存ebp mov ebp,esp 將ebp用來...

多執行緒中棧與堆是公有的還是私有的

棧是私有的,每個執行緒都有自己的棧。堆是公有的,同一程序中的不同執行緒可以通過堆共享資料。多執行緒中棧與堆是公有的還是私有的 每個執行緒私有的資源只有的棧和程式計數器 棧記憶體用來記錄執行緒的執行歷史 程式計數器用來儲存執行緒的執行位置,其他的資源 比如 檔案控制代碼 全域性變數 堆記憶體 都是所有...