資源描述:
《實驗報告 1 線性表操作》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、實驗報告1線性表操作1實驗名稱線性表操作2實驗?zāi)康?.1掌握用C語言調(diào)試程序的基本方法。2.2掌握用C語言實現(xiàn)教材《數(shù)據(jù)結(jié)構(gòu)(C語言版嚴(yán)蔚敏)》中算法的基本方法。3實驗內(nèi)容閱讀和理解所提供的用C語言實現(xiàn)教材《數(shù)據(jù)結(jié)構(gòu)(C語言版嚴(yán)蔚敏)》中算法2.3、算法2.4、算法2.5的C語言代碼,并完整地寫出測試用的C語言代碼。4實驗要求4.1所實現(xiàn)的各個算法的C程序代碼都必須在VC++6.0中上機測試通過。4.2完整地寫出測試用的C語言代碼(包括主函數(shù)及相關(guān)語句代碼)。5測試用的主函數(shù)及相關(guān)語句代碼特別說明:以上內(nèi)容必須在實驗報告中完整地寫出!參考:用C語言
2、實現(xiàn)算法2.3、算法2.4、算法2.5的代碼//程序文件Common.h:目的是將要用到的公共定義語句做成一個頭文件#defineTRUE1#defineFALAW0#defineOK1#defineERROR0#defineINFEASIBLE-1#defineOVERFLOW-2typedefintStatus;//程序文件LinearList_SequentialStorage.h:目的是將線性表的順序存儲結(jié)構(gòu)定義與操作定//義做成做成一個頭文件//#include"stdio.h"#include"stdlib.h"#include"Com
3、mon.h"#defineLIST_INIT_SIZE100#defineLISTINCREMENT10typedefintElemType;typedefstruct{//順序存儲結(jié)構(gòu)的定義ElemType*elem;intlength;intlistsize;}SqList;//以下是操作的定義//初始化線性表的操作StatusInitList_Sq(SqList*L){L->elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!L->elem){printf("初始化不成功!
4、n");exit(OVERFLOW);}L->length=0;L->listsize=LIST_INIT_SIZE;printf("初始化成功!");return(OK);}//初始化線性表的操作StatusListInsert_Sq(SqList*L,inti,ElemTypee){ElemType*newbase,*p,*q;if(i<1
5、
6、i>L->length+1){printf("插入位置不合法!");returnERROR;}if(L->length>=L->listsize){newbase=(ElemType*)reall
7、oc(L->elem,(L->listsize+LISTINCREMENT)*sizeof(ElemType));if(!newbase){printf("插入不成功!");exit(OVERFLOW);}L->elem=newbase;L->listsize+=LISTINCREMENT;}q=&(L->elem[i-1]);for(p=&(L->elem[L->length-1]);p>=q;--p)*(p+1)=*p;*q=e;++L->length;printf("插入成功!");return(OK);}//顯示線性表中數(shù)據(jù)元素的操
8、作voidListDisplay_Sq(SqListL){inti;printf("你的線性表是:");for(i=0;i9、
10、i>L->length)returnERROR;p=&(L->elem[i-1]);*e=*p;q=L->elem+L->length-1;for(++p;p<
11、=q;++p)*(p-1)=*p;--L->length;returnOK;}