1. <rt id="cs8fe"><fieldset id="cs8fe"></fieldset></rt>
      <center id="cs8fe"></center>
      <pre id="cs8fe"></pre>
    2. <ul id="cs8fe"><tfoot id="cs8fe"></tfoot></ul>
      <del id="cs8fe"></del>
        <input id="cs8fe"><form id="cs8fe"></form></input>
        国产精鲁鲁网在线视频,国产午夜精品一区二区三区老,日韩av在线高清观看,无码av波多野结衣,国产免费视频一区二区,欧美自慰一级看片免费,亚洲成年轻人电影网站WWW ,成人观看欧美特黄A片
        報告

        數據結構實驗報告

        時間:2024-08-10 23:53:07 報告

        數據結構實驗報告范例

          篇一:數據結構實驗報告范例

          《數據結構與算法》實驗報告

        數據結構實驗報告范例

          專業 班級 姓名 學號

          實驗項目

          實驗一 二叉樹的應用

          實驗目的

          1、進一步掌握指針變量的含義及應用。

          2、掌握二叉樹的結構特征,以及各種存儲結構的特點及使用范圍。

          3、掌握用指針類型描述、訪問和處理二叉樹的運算。

          實驗內容

          題目1:編寫一個程序,采用一棵二叉樹表示一個家譜關系。要求程序具有如下功能:

          (1)用括號表示法輸出家譜二叉樹,

          (2)查找某人的'所有兒子,

          (3)查找某人的所有祖先。

          算法設計分析

          (一)數據結構的定義

          為了能夠用二叉樹表示配偶、子女、兄弟三種關系,特采用以下存儲關系,則能在二叉樹上實現家譜的各項運算。

          二叉樹型存儲結構定義為:

          typedef struct SNODE

          {char name[MAX]; //人名

          struct SNODE *left;//指向配偶結點

          struct SNODE *right; //指向兄弟或子女結點

          }FNODE;

          (二)總體設計

          實驗由主函數、家譜建立函數、家譜輸出函數、兒子查找函數、祖先查找函數、結點定位函數、選擇界面函數七個函數共同組成。其功能描述如下:

          (1)主函數:統籌調用各個函數以實現相應功能

          void main()

          (2)家譜建立函數:與用戶交互建立家族成員對應關系

          void InitialFamily(FNODE *&head) //家譜建立函數

          (3)家譜輸出函數:用括號表示法輸出家譜

          輸出形式為:父和母(子1和子妻1(孫1),子2和子妻2(孫2))

          void PrintFamily(FNODE *head) //家譜輸出函數

          (4)兒子查找函數:在家譜中查找到某人所有的子女并輸出,同時也能辨別出其是否為家族成員與是否有子女

          void FindSon(FNODE *b,char p[]) //兒子查找函數

          (5)祖先查找函數:在家譜中查找到某人所有的祖先并輸出,同時也能辨別出其是否為家族中成員。

          int FindAncestor(FNODE *head,char son[ ]) //祖先查找函數

          (6)結點定位函數:在家譜中找到用戶輸入人名所對應的結點。

          FNODE *findnode(FNODE *b,char p[]) //結點定位函數

          (7)選擇界面函數:為便于編寫程序,將用戶選擇部分獨立為此函數。

          void PRINT(int &n)

          (三)各函數的詳細設計:

          void InitialFamily(FNODE *&head) //家譜建立函數

          1:首先建立當前人的信息,將其左右結點置為空,

          2:然后讓用戶確定其是否有配偶,如果沒有配偶,則當前程序結束,

          3:如果有則建立其配偶信息,并將配偶結點賦給當前人的左結點;

          4:再讓用戶確定其是否有子女,如果有則遞歸調用家譜建立函數建立子女結點,并將其賦給配偶結點的下一個右結點。

          5:如無,則程序結束

          void PrintFamily(FNODE *head) //家譜輸出函數

          1:首先判斷當前結點是否為空,如果為空則結束程序;

          2:如果不為空,則輸出當前結點信息,

          3:然后判斷其左結點(配偶結點)是否為空,如不為空則輸出“和配偶信息。

          4:再判斷配偶結點的右結點是否為空,如不為空則遞歸調用輸出其子女信息,最后輸出“)”;

          5:當配偶結點為空時,則判斷其右結點(兄弟結點)是否為空

          6:如果不為空,則輸出“,”,并遞歸調用輸出兄弟信息

          7程序結束

          FNODE *findnode(FNODE *b,char p[]) //結點定位函數

          1:當前結點是否為空,為空則返回空;

          2:如果和查找信息相同,則返回當前結點;

          3:如不然,則先后遞歸訪問其左結點,再不是則遞歸訪問右結點

          void FindSon(FNODE *b,char p[]) //兒子查找函數

          1:在家譜中定位到要查找的結點,如無則輸出“查找不到此人”

          2:判斷其配偶結點與子女結點是否為空,為空則輸出“無子女”

          3:不為空則輸出其配偶結點的所有右結點(子女結點)。

          int FindAncestor(FNODE *head,char son[ ]) //祖先查找函數

          1:先在家譜中定位到要查找的結點,如為空輸出“不存在此人”,程序結束

          2:先將父母結點入棧,當棧為空時程序結束,

          3:棧不為空時,判斷棧頂元素是否已訪問過,

          4:訪問過,再判斷是否為查找結點,如是則輸出棧中保存的其祖先結點,并濾過其兄弟結點不輸出;不是查找結點,則退棧一個元素

          5:未訪問過,則取當前棧頂元素,置訪問標志——1,同時取其右結點

          6:棧不為空或當前所取結點不為空時,轉到2;

          實驗測試結果及結果分析

          (一)測試結果

          (二)結果分析

          (略)

          實驗總結

          (略)

        【數據結構實驗報告】相關文章:

        實驗報告06-21

        實驗報告11-15

        工作實驗報告03-11

        設計實驗報告07-28

        最新實驗報告10-14

        關于實驗報告02-17

        實驗報告范文02-06

        實驗報告 范本02-02

        測量實驗報告03-21

        化學實驗報告03-27

        主站蜘蛛池模板: 99视频偷窥在线精品国自产拍| 国内最新免费一区二区三区| 久久激情五月丁香伊人| 亚洲中文字幕在线二页| 合集国产精品| 成人免费AV| av无码制服丝袜国产日韩| 国产精品自在拍99| 天天影视色香欲综合久久| 精品国产亚欧无码久久久| 国产又黄又大又粗视频| 国产绿帽一区二区三区| 精品一区二区三区在线观看| 亚洲老妇女亚洲老熟女久| 天天综合亚洲色在线精品| 国产在线精品一区二区在线观看| 亚洲а∨天堂久久精品| 国产老熟妇精品观看| 2019最新中文字幕无码播放我不卡| 国产偷窥熟妇高潮呻吟| 51精品国产人成在线观看| 欧美激情视频一区二区三区免费| 麻豆精品一区二区综合av| 中文字幕亚洲综久久2021| 激情综合网激情五月激情| 中文国产| 在线观看中文字幕国产码| 醉酒后少妇被疯狂内射视频| 97人人超碰国产精品最新| 色综合久久久久8天国 | 亚洲精品中文字幕无码av| 日韩丝袜人妻中文字幕| 人人妻碰人人免费| 精品麻豆一卡2卡三卡4卡乱码| 99re国产精品视频首页| 一区二区三区毛aaaa片特级| 久久精品国产亚洲av麻豆长发| 日韩a在线播放| 国产黑丝袜在线观看视频| 国产成人A∨| 亚洲爆乳成AV人在线视菜奈实|