資源描述:
《《數(shù)據(jù)結(jié)構(gòu)》實(shí)訓(xùn)報(bào)告.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、實(shí)驗(yàn)一線性表1.實(shí)驗(yàn)要求1.1掌握數(shù)據(jù)結(jié)構(gòu)中線性表的基本概念。1.2熟練掌握線性表的基本操作:創(chuàng)建、插入、刪除、查找、輸出、求長度及合并并運(yùn)算在順序存儲(chǔ)結(jié)構(gòu)上的實(shí)驗(yàn)。1.3熟練掌握鏈表的各種操作和應(yīng)用。2.實(shí)驗(yàn)內(nèi)容2.1編寫一個(gè)函數(shù),從一個(gè)給定的順序表A中刪除元素值在x到y(tǒng)之間的所有元素,要求以較高效率來實(shí)現(xiàn)。2.2試寫一個(gè)算法,在無頭結(jié)點(diǎn)的動(dòng)態(tài)單鏈表上實(shí)現(xiàn)線性表插入操作2.3設(shè)計(jì)一個(gè)統(tǒng)計(jì)選票的算法,輸出每個(gè)候選人的得票結(jié)果。3.實(shí)驗(yàn)代碼2.1代碼:#includetypedef
2、intelemtype;#definemaxsize10intdel(intA[],intn,elemtypex,elemtypey){inti=0,k=0;while(i=x&&A[i]<=y)k++;elseA[i-k]=A[i];i++;}return(n-k);}voidmain(){inti,j;inta[maxsize];printf("輸入%d個(gè)數(shù):",maxsize);for(i=0;i3、del(a,maxsize,1,3);printf("輸出刪除后剩下的數(shù):");for(i=0;i4、));s->data=x;s->next=L;L=s;}else{p=L;j=1;while(p&&jnext;}if(p
5、
6、j>i-1)returnerror;s=(Linklist)malloc(sizeof(Lnode));s->data=x;s->next=p->next;p->next=s;}}}2.3代碼:typedefintelemtypetypedefstructlinknode{elemtypedata;structlinknode*next;}no
7、detype;nodetype*create(){elemtyped;nodetypeh=NULL,*s,*t;inti=1;printf("建立單鏈表:");while(1){printf("輸入第%d個(gè)結(jié)點(diǎn)數(shù)據(jù)域",i);scanf("%d",&d);if(d==0)break;if(i==1){h=(nodetype*)malloc(sizeof(nodetype));h->data=d;h->next=NULL;t=h;}else{s=(nodetype*)malloc(sizeof(
8、nodetype));s->data=d;s->next=NULL;t->next=s;t=s;}i++;}returnh;}voidsat(nodetype*h,inta[]){nodetype*p=h;while(p!=NULL){a[p->data]++;p=p->next;}}voidmain(){inta[N+1],i;for(i=0;i9、;i<=N;i++)printf("%3d",i);printf("得票數(shù)");for(i=1;i<=N;i++)printf("%3d",a[i]);printf("");}1.實(shí)驗(yàn)小結(jié)線性表是最簡單的、最常用的一種數(shù)據(jù)結(jié)構(gòu),是實(shí)現(xiàn)其他數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)。實(shí)驗(yàn)二棧與隊(duì)列1.實(shí)驗(yàn)要求1.1了解棧和隊(duì)列的特性,以便靈活運(yùn)用。1.2熟練掌握棧和有關(guān)隊(duì)列的各種操作和應(yīng)用。2.實(shí)驗(yàn)內(nèi)容2.1設(shè)一個(gè)算術(shù)表達(dá)式包括圓括號(hào),方括號(hào)和花括號(hào)三種括號(hào),編寫一個(gè)算法判斷其中的括號(hào)是否匹配。3.實(shí)驗(yàn)代碼2.1代
10、碼:#include#include#include#defineNULL0typedefstructlist{charstr;structlist*next;}list;voidpush(char,list*);intpop(char.list*);voiddeal(char*str);main(void){charstr[20];printf("請輸入一個(gè)算式:");gets(str);deal(str);pri