pascal建樹的問題,pascal中樹的含義

時間 2025-02-26 07:30:17

1樓:網友

可以用檔案流來理解。

第一次讀入的時候fp將所有檔案流貯存內容都讀入,並且認為是讀入了程式所需的全部資訊。直到用完了流中所有的值,然後如果這時候還需要資料,才再到檔案流中讀取資料。

所以結合lz的現象,lz可以仔細再f7一下,就會發現只是第二次和第三次不需要提示輸入,第四次還是提示輸入的。

因為比如輸入a 回車。

實際上流中的值為 a chr(10) chr(13)

ps:回車符有兩個字元)

-分割線---

很奇怪,lz的程式沒有結束條件。應該一開始就讀入節點個數吧,然後一開始就輸入n個字元。

readln也可以,它會自動忽略掉乙個回車符。

-分割線---

說實話我沒有看懂你的建樹建的是什麼樹。按照過程貌似是一棵二叉樹,但這樣建立的二叉樹是單鏈的, if a=0 then exit這句話是不會有用的。

如果真的要建立二叉樹的話是不能這樣建立的。至少你應該設定二叉樹的層數或者每個節點的高度。

你可以輸入乙個長度為10的串,然後 if a=0 then exit 改成 if a=11,在程式結束前把這棵樹所有節點的lch,rch,ftr依次輸出來,看看構樹的結果。

-分割線---

如果你還是對這個構樹有什麼問題,我的建議是對它不用考慮太多。構這樣的樹的題目是非常少的,特別是對於二叉樹。

你還可以參考二叉排序樹的建立。裡面的構樹過程希望對你有用。

-分割線---

樓上說的樓下現在真的變成了樓下。。

-分割線---

chr(13) =回車符 chr(10) =換行符。

為什麼乙個回車等於這兩個字元我也不知道。。

回車 = eoln ,所以可以加上一句: if eoln then readln; 這樣就忽略了chr(10) chr(13)。

read(ch)讀入的是單字元。

-分割線---

q:「直接用二叉樹的性質(子樹為2i,2i+1),建立乙個一維陣列是通用的嗎?」

a:yes。但是在實際問題中往往這樣做會浪費大量的空間。堆、線段樹這樣的完全二叉樹才能避免大規模的空間浪費。

q:「為什麼樹上大多都是介紹這種左兒子、右兒子 用記錄型別的建樹方法呢?」

a:因為二叉樹是最基本的樹,記錄型別在樹裡面用的比較多,所以講樹基本這樣引入。事實上,碰到k叉樹的時候,很多情況下不能轉化成左右孩子表示法來表示。

主要是理解樹結構,跟儲存方式的變化有什麼大的關係 =.

2樓:網友

這個一看就知道是高手。

我是菜鳥不會。

只為來拿兩分。

3樓:ice璐璐

我仔細看了,不覺得有問題。

呃 不過建議把i的處理關注下。

然後 拉到我的fp上執行了下。

沒有問題……

4樓:樸宜然

一,把read改為readln

2,你的建樹沒有終止條件。

3,如樓下所說,我也試了,第四次是要輸入的。

第乙個為字母,第二個為#13 第三個為#

pascal中樹的含義

5樓:網友

首先,我們pascal中的資料的關係有:1.一對一(線性表)2.一對多(樹)3.多對多(圖)。

其次,樹的有關術語即其意義:

1.根結點:根結點是沒有前驅結點的。除根節點以外,每個節點都必定有乙個前驅,每個結點都有n個後續結點(n≥0)

2.乙個節點的前驅結點叫做父結點。

6樓:力弘雅

一種資料結構。

最典型的是二叉樹,乙個節點有兩個或以下的分支。

PASCAL問題,Pascal問題

歷年noip。找源程式太容易了吧 pascal問題 第五題 program lsh5 vara,b,n,x,p integer t array 1.100 ofinteger begin readln n fora 1ton div2 1 dobegin x 0 p a forb a 1ton di...

pascal問題,pascal問題

這是第一題 var i,j,a,n,s,t longint begin readln a,n for i 1 to n do begin s 0 for j 0 to i 1 do begin inc s,a round exp j ln 10 end inc t,s end writeln t r...

關於Pascal的問題

語法錯誤是 program esatj 後面有 程式錯誤x 90 0.7 x 改為x 90 0.7 x 100 附加題var a,b,c real procedure max var a,b real vart real begin if aend begin read a,b,c max a,b ...