資源描述:
《課程實驗報告1線性表》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、課程實驗報告專業(yè)年級2012級軟件工程課程名稱數據結構C語言描述指導教師申紅婷學生姓名王曉霞學號20122205041002實驗日期2012.10.31實驗地點A3篤行樓A棟306實驗成績教務處制2013年10月31日實驗項目名稱線性表實驗實驗目的及要求一.目的:1.使學生對線性表的順序存儲結構、基本操作和應用,能通過實驗達到掌握和應用的目的。2.使學生對線性表的線性表的鏈式結構、基本操作和應用,能通過實驗達到掌握和應用的目的。二.要求:實驗前認真預習實驗內容。實驗時自覺遵守課堂紀律,嚴格按操作規(guī)程操作,既要獨立操作又要與其他同學配合,在實驗過程中必須按照實驗內容認真做完實驗,
2、并認真填寫相關實驗報告。實驗內容線性表的順序存儲結構和線性表的鏈式結構、基本操和應用。實驗步驟1、閱讀下面程序,在橫線處填寫函數的基本功能。并運行程序,寫出結果。#include#include#defineERROR0#defineOK1#defineINIT_SIZE5/*初始分配的順序表長度*/#defineINCREM5/*溢出時,順序表長度的增量*/typedefintElemType;/*定義表元素的類型*/typedefstructSqlist{ElemType*slist;/*存儲空間的基地址*/intlength;/*順序
3、表的當前長度*/intlistsize;/*當前分配的存儲空間*/}Sqlist;intInitList_sq(Sqlist*L);/*初始化順序表,為其分配存儲空間*/intCreateList_sq(Sqlist*L,intn);/*創(chuàng)建一個順序表*/intListInsert_sq(Sqlist*L,inti,ElemTypee);/*將新元素e插入到順序表第i個位置*/intPrintList_sq(Sqlist*L);/*輸出順序表的元素*/intListDelete_sq(Sqlist*L,inti);/*刪除第i個元素*/intListLocate(Sqlist*
4、L,ElemTypee);/*查找值為e的元素*/intInitList_sq(Sqlist*L){L->slist=(ElemType*)malloc(INIT_SIZE*sizeof(ElemType));if(!L->slist)returnERROR;L->length=0;L->listsize=INIT_SIZE;returnOK;}/*InitList*/intCreateList_sq(Sqlist*L,intn){ElemTypee;inti;for(i=0;i5、f(!ListInsert_sq(L,i+1,e))returnERROR;}returnOK;}/*CreateList*//*輸出順序表中的元素*/intPrintList_sq(Sqlist*L){inti;for(i=1;i<=L->length;i++)printf("%5d",L->slist[i-1]);returnOK;}/*PrintList*/intListInsert_sq(Sqlist*L,inti,ElemTypee){intk;if(i<1
6、
7、i>L->length+1)returnERROR;if(L->length>=L->listsize){L
8、->slist=(ElemType*)realloc(L->slist,(INIT_SIZE+INCREM)*sizeof(ElemType));if(!L->slist)returnERROR;L->listsize+=INCREM;}for(k=L->length-1;k>=i-1;k--){L->slist[k+1]=L->slist[k];}L->slist[i-1]=e;L->length++;returnOK;}/*ListInsert*//*在順序表中刪除第i個元素*/intListDelete_sq(Sqlist*L,inti){if(L->length==0)
9、return0;if(i<1
10、
11、i>L->length)return0;for(intj;jlength;j++)L->slist[j-1]=L->slist[j];L->length--;return1;}/*在順序表中查找指定值元素,返回其序號*/intListLocate(Sqlist*L,ElemTypee){for(inti=1;i<=L->length;i++){if(L->slist[i-1]==e)returni;return0;}}intmain(){Sqlists