資源簡介
《數據結構》(C語言版)
算法源碼及運行演示系統使用說明
一、啟動演示系統
雙擊演示系統應用程序文件“DS_VC_ALGO.EXE”啟動演示系統,出現圖1所示界面。
圖1 《數據結構》(C語言版)算法源碼及運行演示系統主界面
二、演示系統使用步驟
除了個別算法之外,演示系統給出了《數據結構》(C語言版)書中算法對應的程序代碼(CPP文件)和測試運行程序(VC++6.0的EXE文件)。通過本系統,可以顯示算法的源代碼以及運行結果。具體操作步驟如下:
1.選擇相應章
單擊演示系統界面右側章選擇按鈕。
例如,要選擇第6章,則單擊“第6章”選擇按鈕。
當相應章被選擇后,窗口的右側部分將列出本章的算法選擇按鈕。
例如,選擇第6章后,窗口的右側部分將顯示第6章中的算法6.1-6.13和6.15的選擇按鈕。由于書中的算法6.14和6.16只是示意性算法,故未給出源碼,其按鈕上的文字為灰色,處于“無效”狀態。
2.選擇相應章中的算法
單擊窗口右側部分所列舉的本章某個算法選擇按鈕,被選擇的算法的源碼將在窗口左側空白區域中顯示。對于較長的源碼,單擊顯示區域后,可用鍵盤的光標鍵和翻頁鍵瀏覽源碼。
例如,選擇了第6章中的算法6.5后界面如圖2所示:
圖2 選擇算法6.5
3.運行測試程序
單擊窗口上部的“運行”按鈕,將彈出運行窗口,運行所選算法的測試程序。若運行按鈕為灰色,表示該算法無單獨測試程序。
例如,算法6.5的測試運行窗口如圖3所示:
圖3 測試運行窗口
測試運行說明:
測試運行窗口顯示程序的執行過程及結果。若在顯示過程中出現運行窗口無法正常演示的情況,只需調節運行窗口大小即可正常顯示(調節最小化按鈕或窗口最大化/還原按鈕“ ”)。
三、退出演示系統
使用完畢后,單擊窗口右上角關閉按鈕“ ”退出演示系統。
四、測試程序示例
在《數據結構》的課程教學中,各抽象數據類型的設計與實現是重要的學習和實踐環節。為此,本系統只給出了各算法源碼的測試程序的可執行文件。在此,給出算法6.5的測試程序示例,以供參考。
算法6.5是中序遍歷線索二叉樹的非遞歸算法,要對其源碼進行測試,可首先調用算法6.6及6.7建立中序線索二叉樹。以下是測試程序的源碼,相關類型和輔助函數定義在文件include06.h和include06.cpp中,此略。
// test0605.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "include06.h" // 相關類型和輔助函數的定義
BiThrTree pre; // 線索二叉樹遍歷輔助變量
#include "algo0607.cpp" // 算法6.7源碼
#include "algo0606.cpp" // 算法6.6源碼
#include "algo0605.cpp" // 算法6.5源碼
int main(int argc, char* argv[]) {
char gl_str[64];
BiThrTree T;
BiThrTree Thrt;
printf("*******************************************\n");
printf("* 《數據結構》(C語言版)嚴蔚敏,吳偉民 *\n");
printf("* 算法6.5, 6.6 & 6.7 *\n");
printf("*******************************************\n");
srand((unsigned)time(NULL)); // 隨機函數初始化
T=NULL; // 空二叉樹T
for (int pass=0; pass<5; pass++) { // 測試運行5次,第一次為空樹
outBiThrTree(T,gl_str); // 以類廣義表的形式輸出二叉樹T到gl_str
printf("T = %s\n", gl_str); // 顯示
pre = NULL;
Status r = InOrderThreading(Thrt, T); // 算法6.6,6.7,中序線索化
printf("InOrderThreading(Thrt, T) : %s\n", (r) ? "OK" : "ERROR");
initVisitStr(); // 將visitStr清為空串
InOrderTraverse_Thr(Thrt, v

代碼片段和文件信息
Status?TransposeSMatrix(TSMatrix?M?TSMatrix?&T)?{??//?算法5.1
??//?采用三元組順序表存儲表示,求稀疏矩陣M的轉置矩陣T
??int?p?q?col;
??T.mu?=?M.nu;??T.nu?=?M.mu;??T.tu?=?M.tu;
??if?(T.tu)?{
????q?=?1;
????for?(col=1;?col<=M.nu;?++col)
??????for?(p=1;?p<=M.tu;?++p)
????????if?(M.data[p].j?==?col)?{
??????????T.data[q].i=M.data[p].j;T.data[q].j?=M.data[p].i;
??????????T.data[q].e?=M.data[p].e;??++q;?
????????}
??}
??return?OK;
}?//?TransposeSMatrix
??????????????????????????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????180??2003-03-04?15:29??DS-Algo-VC\algo0409BookIdx.txt
?????文件????????218??2002-05-26?12:52??DS-Algo-VC\Algo0409BookInfo.txt
?????文件????????120??2003-03-06?15:28??DS-Algo-VC\Algo1104_FI.rec
?????文件????????132??2003-03-06?15:28??DS-Algo-VC\Algo1104_FO.rec
?????文件????????120??2003-03-06?15:28??DS-Algo-VC\Algo1201_f.rec
?????文件?????????72??2003-03-06?15:28??DS-Algo-VC\Algo1201_g.rec
?????文件??????25600??2000-01-31?05:00??DS-Algo-VC\BORLNDMM.DLL
?????文件????1497088??2000-08-07?05:01??DS-Algo-VC\CC3250MT.DLL
?????文件??????91136??2002-12-11?10:16??DS-Algo-VC\DS_VC_ALGO.exe
?????文件????2023424??2000-01-24?05:01??DS-Algo-VC\VCL50.BPL
?????文件?????124416??2003-03-04?16:24??DS-Algo-VC\使用說明.doc
?????文件???????1358??2002-11-21?15:08??DS-Algo-VC\CHAP12\ALGO1201.CPP
?????文件????????108??2002-12-11?11:10??DS-Algo-VC\CHAP12\Algo1201_f.rec
?????文件?????????72??2002-12-11?11:10??DS-Algo-VC\CHAP12\Algo1201_g.rec
?????文件??????49152??2002-12-11?11:10??DS-Algo-VC\CHAP12\TEST1201.EXE
?????文件????????870??2002-11-21?15:00??DS-Algo-VC\CHAP11\ALGO1101.CPP
?????文件????????331??2002-06-10?17:58??DS-Algo-VC\CHAP11\ALGO1102.CPP
?????文件????????420??2002-11-21?15:01??DS-Algo-VC\CHAP11\ALGO1103.CPP
?????文件????????801??2002-12-11?09:53??DS-Algo-VC\CHAP11\ALGO1104.CPP
?????文件????????120??2002-12-11?11:15??DS-Algo-VC\CHAP11\Algo1104_FI.rec
?????文件????????132??2002-12-11?11:15??DS-Algo-VC\CHAP11\Algo1104_FO.rec
?????文件????????906??2002-11-21?15:04??DS-Algo-VC\CHAP11\ALGO1105.CPP
?????文件????????406??2002-11-21?15:05??DS-Algo-VC\CHAP11\ALGO1106.CPP
?????文件????????539??2002-11-21?15:05??DS-Algo-VC\CHAP11\ALGO1107.CPP
?????文件??????45056??2002-06-20?11:50??DS-Algo-VC\CHAP11\TEST1101.EXE
?????文件??????49152??2002-12-11?11:14??DS-Algo-VC\CHAP11\TEST1104.EXE
?????文件????????442??2002-11-21?17:11??DS-Algo-VC\CHAP10\ALGO1001.CPP
?????文件????????638??2002-11-21?17:12??DS-Algo-VC\CHAP10\ALGO1002.CPP
?????文件????????735??2002-11-21?17:14??DS-Algo-VC\CHAP10\ALGO1003.CPP
?????文件????????614??2002-11-21?17:14??DS-Algo-VC\CHAP10\ALGO1004.CPP
............此處省略225個文件信息
評論
共有 條評論