7.1 函式式資料結構
用函式程式設計,程式處理的資料總是儲存在資料結構中。資料結構和物件之間的區別在於,資料結構公開了表示資料(從名字就可以知道) 的結構;知道了資料的結構便於寫處理的**,但要到第九章才討論,f# 還提供了一種封裝結構的方法,如同物件導向程式設計,當我們想從庫中匯出 f# 資料結構,或者用於 c#。正如我們在第二章討論函式概念時所說的,這些資料結構是不可變的。
在這一章,我們將討論兩個最常見的程式資料表示形式:
■ 組合值列表,比如元組或差別聯合
■ 更一般的遞迴資料結構,比如樹
在第四章,我們使用元組列表來繪製餅圖,其中每個元組包含有標題和值。使用元組很簡單,但想表達更複雜的資料,則是不切實際的。在這一節,我們將學習 f# 的記錄(record)型別,這是尚未討論的 f# 核心資料型別。
資料結構 7 1 括號匹配
給定一串字元,不超過100個字元,可能包括括號 數字 字母 標點符號 空格,程式設計檢查這一串字元中的 是否匹配。輸入格式 輸入在一行中給出一行字串,不超過100個字元,可能包括括號 數字 字母 標點符號 空格。輸出格式 如果括號配對,輸出yes,否則輸出no。輸入樣例1 sin 10 20 輸出樣...
資料結構 程式設計題7 1
設計函式分別求兩個一元多項式的乘積與和。輸入分2行,每行分別先給出多項式非零項的個數,再以指數遞降方式輸入乙個多項式非零項係數和指數 絕對值均為不超過1000的整數 數字間以空格分隔。輸出分2行,分別以指數遞降方式輸出乘積多項式以及和多項式非零項的係數和指數。數字間以空格分隔,但結尾不能有多餘空格。...
資料結構 左式堆
左式堆 同二叉堆一樣具有結構性和堆序性。惟一的區別是 左式堆不是理想平衡的,而實際上是趨於不平衡的。零路徑長 npl x 從節點x到乙個沒有兩個兒子節點的最短路徑長。左式堆要求對於堆中的每乙個節點x,左兒子的零路徑長至少與右兒子的零路徑長一樣大。左式堆的結構宣告 struct treenode ty...