武漢理工大學資料結構課內實驗

2021-10-16 06:15:44 字數 3638 閱讀 3236

二、棧的應用

三、樹的應用

四、無向圖的應用

五、有向圖的應用

六、查詢與排序

七、哈夫曼編碼總結

1.安裝了windows 10作業系統的pc機1臺

2.pc機系統上安裝了microsoft visual studio 2019開發環境

專案名稱:學生資訊管理系統

專案內容:設計乙個學生資訊管理系統,實現對學生基本資訊的新增、刪除、修改和查詢等操作,其中每個學生資訊包含學號,姓名和績點。要求系統完成以下主要功能:

(1)顯示:顯示當前所有學生資訊記錄;

(2)錄入:從鍵盤輸入一條學生資訊記錄,插入到表中指定的位置;

(3)查詢:根據學號或者記錄的位置查詢學生的各項資訊;

(4)刪除:刪除指定位置的學生資訊記錄;

(5)更新:更新指定位置的學生資訊記錄;

(6)統計:統計表中學生人數;

(7)排序:按照學號或者績點進行排序;

(8)清空:清空表中所有記錄。

typedef

struct

student;

typedef

struct lnode lnode,

*linklist;

專案名稱:簡易計算器程式

專案內容:編寫程式,模擬簡單運算器的工作:輸入乙個算式(沒有空格),遇等號「=」說明輸入結束,輸出結果。假設計算器只能計算加減乘除運算,運算數和結果都是整數。要求完成以下功能: 從鍵盤錄入中綴表示式,計算中綴表示式的值。

typedef

struct

//運算元棧

list;

typedef

struct

//操作符棧

node;

用遞迴的方法實現以下演算法:

1.以二叉鍊錶表示二叉樹,建立一棵二叉樹;

2.輸出二叉樹的中序遍歷結果;

3.輸出二叉樹的前序遍歷結果;

4.輸出二叉樹的後序遍歷結果;

5.計算二叉樹的深度;

6.統計二叉樹的結點個數;

7.統計二叉樹的葉結點個數;

8.統計二叉樹的度為1的結點個數;

9.輸出二叉樹中從每個葉子結點到根結點的路徑。

//二叉樹的二叉鍊錶儲存表示

typedef

struct binode

bitnode,

* bitree;

專案名稱:通訊網構建

專案內容:在 n 個城市之間建立通訊聯絡網,則連通 n 個城市只需要 n-1 條線路。要求在最節省經費的前提下建立這個通訊網。

(1) 完成城市資訊的輸入。

(2) 完成城市資訊的編輯,包括城市以及城市間距離的增加,刪除,資訊修改等。

(3) 允許使用者指定下列兩種策略進行通訊網的構建

1) 採用 prim 演算法進行通訊網的構建;

2) 採用 kruskal 演算法進行通訊網的構建;

typedef

char vertextype;

//假設頂點的資料型別為字元型

typedef

int arctype;

#define mvnum 100

//最大頂點數

#define maxint 32767

//表示極大值,即∞

//----------------圖的鄰接矩陣---------------------

typedef

struct

amgraph;

int vexset[mvnum]

;//輔助陣列vexset的定義

//輔助陣列edges的定義

struct

edge[

(mvnum *

(mvnum -1)

)/2]

;//輔助陣列的定義,用來記錄從頂點集u到v-u的權值最小的邊

struct

closedge[mvnum]

;

專案名稱:教學計畫編制系統

專案內容:大學的每個專業都要制定教學計畫。假設任何專業都有固定的學習年限,每學年包含兩個學期,每個學期的時間長度和學分上限均相等。每個專業開設的課程都是確定的, 而且課程在開設時間的安排上必須滿足先修關係。每門課程有哪些先修課程是確定的,可以有任意多門,也可以沒有。每門課恰好佔乙個學期。試在這樣的前提下設計乙個教學計畫編制系統,該系統需要滿足以下功能:

(1) 完成課程進修目錄資訊的讀取;

(2) 完成課程進修目錄資訊的編輯,包括課程的增加,刪除,資訊修改等;

(3) 學生的教學計畫學期為 6,每個學期的學分上限為 10 分,允許使用者指定下列編排策略進行教學計畫的輸出。

1) 使學生在各個學期中的負擔盡量均勻;

2) 使課程盡可能地集中在前幾個學期中。

若根據給定的條件問題無解,則報告適當資訊;否則將教學計畫輸出到使用者指定的檔案中,計畫的**格式自行設計。

typedef

struct arcnode

arcnode;

typedef

struct

vnode,adjlist[

100]

;typedef

int elemtype;

typedef

struct

algraph;

typedef

struct

sqstack;

在實驗1設計的學生管理系統基礎上,增加以下功能:

(1) 利用直接插入排序或者折半插入排序按照姓名進行排序;

(2) 利用快速排序按照學號進行排序;

(3) 根據姓名進行折半查詢,要求使用遞迴演算法實現,成功返回此學生的學號和成績;

(4) 根據學號進行折半查詢,要求使用非遞迴演算法實現,成功返回此學生的姓名和成績。

typedef

struct

elemtype;

//順序表的儲存結構

typedef

struct

sqlist;

//順序表型別

實現乙個哈夫曼編碼系統,系統包括以下功能:

(1) 字元資訊統計:讀取待編碼的原始檔sourcefile.txt,統計出現的字元及其頻率。

(2) 建立哈夫曼樹:根據統計結果建立哈夫曼樹。

(3) 建立哈夫曼碼表:利用得到的哈夫曼樹,將各字元對應的編碼表儲存在檔案code.txt中。

typedef

struct

htnode,

* huffmantree;

typedef

char

** huffmancode;

武漢理工大學C語言 課內實驗

問題描述 1.求乙個三位數的各位數字 當 n 為 152 時,分別求出 n 的個位數字 digit1 十位數字 digit2 和百位數字 digit3 的值。2.三天打魚兩天曬網 中國有句俗語 三天打魚兩天曬網 假設某人從某天起,開始 三天打魚兩天曬網 問這個人在以後的第 n 天中是 打魚 還是 曬...

武漢理工大學數值分析課內實驗

二 用c語言實現幾個求常微分方程初值問題解的程式。euler方法及其改進 龍格 庫塔 runge kutta 方法 三 用c語言實現幾個非線性方程求根的程式。二分法 迭代法 迭代過程的加速 四 用c語言實現幾個求線性方程組解的程式。gauss消去法 總結數值分析課內實驗採用程式設計的思想去實現有關數...

武漢理工大學編譯原理 課內實驗

二 賦值語句的語法分析程式設計與實現 總結編譯原理課設驗收更水,只看結果。1.pc機 2.c 整合環境 通過設計 編制 除錯乙個具體的詞法分析程式,加深對詞法分析原理的理解,並掌握在對程式語言源程式進行掃瞄過程中將其分解為各類單詞的詞法分析方法。完成對某一種常用高階語言 如pl 0語言 的各類單詞的...