一、實驗目的
1、熟練掌握線性表的結構特點,掌握順序表的基本操作。
2、鞏固 c++相關的程式設計方法與技術。
3、學會使用順序表解決實際問題。
二、實驗內容
1、順序表的建立與操作實現
建立 n 個元素的順序表(n 的大小和表裡資料自己確定),實現相關的操作:輸出,插
入,刪除,查詢等功能。編寫完整程式實現,程式語言不限定,使用技術形式不定。
2、實際問題的解決(*)
使用順序表來實現約瑟夫環問題。
三、實驗步驟
1、依據實驗內容分別說明實驗程式中用到的資料型別的定義;
2、相關操作的演算法表達;
3、完整程式;
4、總結、執行結果和分析。
5、總體收穫和不足,疑問等。
四、實驗要求
1、按照資料結構實驗任務書,提前做好實驗預習與準備工作。
2、加「*」為選做題。做好可加分。
3、嚴格按照資料結構實驗報告模板和規範,及時完成實驗報告。
4、在個人主頁上發文章
(1)源**:
#include
#include
#define list_init_size 100
#define icreament 20
typedef int elemtype; //使用者自定義資料元素型別
typedef struct
elemtype *elem; //順序表的基位址
int length; //順序表的當前長度
int listsize; //預設空間容量
}sqlist; //線性表的順序儲存結構
sqlist* initlist() //建立空的順序表
sqlist* l = (sqlist*)malloc(sizeof(sqlist));//定義順序表l
if(!l)
printf("空間劃分失敗,程式退出\n");
return null;
l->elem=(elemtype *)malloc(list_init_size*sizeof(elemtype));
if(!l->elem)
printf("空間劃分失敗,程式退出\n");
return null;
l->length=0;
l->listsize=list_init_size;
return l;
int createlist(sqlist* l) //建立順序表(非空)
int number; //順序表中元素的個數
int i; //迴圈變數
printf("請輸入插入元素的個數:");
scanf("%d",&number);
if(number > list_init_size) //一定要判斷輸入的個數是否大於順序表的最大長度
printf("輸入個數大於順序表的長度\n");
return 0;
for(i=0;iprintf("輸入第%d個數: ",i+1);
}//給順序表中每個資料元素賦值
l->length=number; //當前順序表的長度
return 1;
void print(sqlist* l) //輸出當前順序表
int i;
printf("輸出:\n");
for(i=0;ilength;i++)
printf("第%d個數:%-3d\n",i+1,*(l->elem + i)); //l->elem+i:和輸入是乙個道理
printf("順序表長度為:%d\n", l->length);
printf("\n");
int main()
sqlist* l = initlist(); //申請乙個指向順序表的指標,並對其初始化
if(!l) //判斷申請是否成功
printf("初始化線性表失敗\n");
return 1;
if(!createlist(l)) //判斷建立順序表是否成功
printf("建立順序表失敗\n");
return 1;
print(l); //列印順序表
free(l->elem); //釋放申請的順序表元素的記憶體
free(l); //釋放申請的順序表記憶體
return 0;
(2)執行結果截圖:
(3)總結:
通過這次寫實驗報告,我深切的理解了這門課的本質。剛開始學這門課時,當時還不清楚這門課程的目
的,現在,我真正的理解了:資料結構像是身體
的骨骼。資料結構是個框架,模型,抽象資料型別中列舉了各種操作,而所用的c++語言,將各種操作描述出來構成演算法。
這次實驗讓我認識到,一定要創新,大膽,不能按照舊的思路去幹新的事情。
同時,我也悟出了很多細節上的問題。比如說,有些變數的重複定義,有些變數又沒有定義,在呼叫函式,就直接複製過來,沒有改引數……所以我明
白了細節決定成敗,在以後,不管做任何事情都要認真,細心。
這次的實驗報告,讓我受益匪淺,不僅有知識方面的,還有生活和精神上的。總之,我希望在之後的程式設計的過程中,能不斷的提公升自己。
實驗一線性表的基本操作實現及其應用
一 實驗目的 1 熟練掌握線性表的結構特點,掌握順序表的基本操作。2 鞏固 c 相關的程式設計方法與技術。3 學會使用順序表解決實際問題。二 實驗內容 三 實驗步驟 1 建立乙個模板類 2 建構函式建立列表,length,get,locate,insert,delete,printlist函式 3 ...
實驗一線性表的基本操作實現及其應用
順序表是用一段位址連續的儲存單元依次儲存線性表的資料元素,我打算借鑑書本用c 寫乙個小順序表記錄10個人的數學成績。源 標頭檔案 include includeusing namespace std 定義模板類seqlist const int maxsize 20 templateclass se...
實驗一 線性表的基本操作實現及其應用
一 實驗目的 1 熟練掌握線性表的結構特點,掌握順序表的基本操作。2 鞏固 c 相關的程式設計方法與技術。3 學會使用順序表解決實際問題。二 實驗內容 1 順序表的建立與操作實現 建立 n 個元素的順序表 n 的大小和表裡資料自己確定 實現相關的操作 輸出,插 入,刪除,查詢等功能。編寫完整程式實現...