求問個資料結構問題 如下的樹節點的入棧函式可以這麼寫嗎

2025-02-24 07:50:25 字數 2882 閱讀 6770

1樓:晰美酒窩

資料結構是計算機儲存、組織資料的方式。資料結構是指相互之間存在一種或多種特定關係的資料元素的集合。通常情況下,精心選擇的資料結構可以帶來更高的執行或者儲存效率的演算法。

資料結構往往同高效的檢索演算法和索引技術有關。 資料結構在電腦科學界至今沒有標準的定義。個人根據各自的理解而有不同的表述方法:

sartajsahni在他的《資料結構、演算法與應用》一書中稱:「資料結構是資料物件,以及存在於該物件的例項和組成例項的資料元素之間的各種聯絡。這些聯絡可以通過定義相關的函式來給出。

他將資料物件(dataobject)定義為「乙個資料物件是例項或值的集合」。 在《資料結構與演算法分析》一書中的定義是:「資料結構是adt(抽象資料型別abstractdatatype)的物理實現。

在《資料結構與程式設計》一書中,將乙個資料結構的設計過程分成抽象層、資料結構層和實現層。其中,抽象層是指抽象資料型別層,它討論資料的邏輯結構及其運算,資料結構層和實現層討論乙個資料結構的表示和在計算機內的儲存細節以及運算的實現。 一般認為,乙個資料結構是由資料元素依據某種邏輯聯絡組織起來的。

對資料元素間邏輯關係的描述稱為資料的邏輯結構;資料必須在計算機記憶體儲,資料的儲存結構是資料結構的實現形式,是其在計算機內的表示;此外討論乙個資料結構必須同時討論在該類資料上執行的運算才有意義。 在許多型別的程式的設計中,資料結構的選擇是乙個基本的設計考慮因素。許多大型系統的構造經驗表明,系統實現的困難程度和系統構造的質量都嚴重的依賴於是否選擇了最優的資料結構。

許多時候,確定了資料結構後,演算法就容易得到了。有些時候事情也會反過來,我們根據特定演算法來選擇資料結構與之適應。不論哪種情況,選擇合適的資料結構都是非常重要的。

選擇了資料結構,演算法也隨之確定,是資料而不是演算法是系統構造的關鍵因素。這種洞見導致了許多種軟體設計方法和程式設計語言的出現,物件導向的程式設計語言就是其中之一。 在電腦科學中,資料結構是一門研究非數值計算的程式設計問題中計算機的操作物件(資料元素)以及它們之間的關係和運算等的學科,而且確保經過這些運算後所得到的新結構仍然是原來的結構型別。

資料結構中計算棧的長度的函式看不懂

2樓:渴侯莉莉

是順序棧吧?你這個棧的結構體定義應該貼出來。

s[0 ]s[1 ]

s[2 ]s[3 ]

比如p首先指向是s[0],p=。

然後p開始往下挪動,一直到p等於為止。

p++不是往上的,是往下的。比如在陣列裡&a[0]=p;p++;之後p就指向a[1]了。

棧頂在上,棧底在下,應該相當於我的s[3]位置。

3樓:大衍之

要看你的棧底元素是怎麼構造的,比如說棧底元素在在上,元素入棧,棧頂的位址是 遞減的,棧底元素在先,元素入棧,那麼棧頂位址就是 遞加的。

審批流程 每個節點可以有多個人 設計 資料結構

4樓:

void fun(node *head,int *len)

用len來儲存節點的個數。

5樓:

windows開始選單---u8erp---工作流進入就可以設定了 有很多模板。

資料結構問題,求乙個二叉樹中。只有左孩子結點沒有右孩子結點的個數

6樓:網友

建立修改資料時,每個節點多存兩個bool,a:本節點是否擁有兩個子節點。

b: 本節點是否是左側子節點。

迴圈測試所有節點。

b為真的個數減去b為假同時父節點a為真的個數或者該操作在修改建立時執行。

增加一節點,判斷該節點是屬於父節點左側唯一節點則加一,如果增加節點為父節點第二右側則減去一。

刪除節點,第一種情況減一,第二種情況加一,。

最後無需計算,把測試分攤在每次操作中。

7樓:網友

有點意思,要不做成手機桌布?每天科普一節。

資料結構,已知二叉樹結點資料結構如下,編寫演算法求二叉樹的非葉子結點數目。

8樓:網友

參考:int noleafcount(node *t)/*求二叉樹中非葉子結點的數目*/

資料結構c語言版中樹的非遞迴先序遍歷,裡面入棧的到底是該樹的date還是什麼?為什麼我把每個節點的

9樓:天蠍李超

當然是結點,因為棧裡面儲存的是遍歷的路徑序列(不是訪問的路徑序列),首先在if語句裡面那個遍歷指標迴圈完p=p->lchild之後是null,在else裡面pop(s,p),這兩個p不是一回事,pop函式里面的p是棧頂元素,pop完之後你要p=p->rchild繼續遍歷,如果要是數的話,這地方就斷了,注意一點就行了,之所以用棧,就是靠棧來找根節點的,這裡的根節點指的是上級節點。

10樓:兩性情感社

就我看來遞迴遍歷是很容易理解的,除非你不懂c語言遞迴,難理解的也就是後序非遞迴遍歷。分2步,1、理解前中後遍歷流程;2、看演算法,回味遍歷流程。

資料結構樹的問題

11樓:gta小雞

這個函式里左右指標都為空,當然遍歷不到c,所以函式結束,返回上層函式,上層函式的pt指向a,當前已遍歷完左子樹,接下來從右子樹的根節點c開始遞迴遍歷右子樹。

資料結構求樹高度問題

12樓:網友

這是乙個遞迴演算法,通過遞迴呼叫函式high(bitree),不斷地一層一層更新a和b的值。

資料結構用棧怎樣計算樹的結點和葉子?

13樓:網友

中序遍歷樹,發現某個節點沒有左右孩子就說明是葉子。

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

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

C語言新手關於資料結構的問題

1全部 include include define list init size 100 define listincrement 10 typedef struct sqlist void initlist sq sqlist l void main 在你的程式上改了一下,這是我習慣的 格式,建...

資料結構問題簡單描述儲存過程的使用步驟

sql server的儲存過程是一個被命名的儲存在伺服器上的transacation sql語句集合,是封裝重複性工作的一種方法,它支援使用者宣告的變數 條件執行和其他強大的程式設計功能。儲存過程相對於其他的資料庫訪問方法有以下的優點 1 重複使用。儲存過程可以重複使用,從而可以減少資料庫開發人員的...