版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼--#-數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16頁,當(dāng)前為第1頁。數(shù)據(jù)結(jié)構(gòu)順序表的主要代碼數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16頁,當(dāng)前為第1頁。/***有頭結(jié)點(diǎn)的單鏈表的初始化、建立(表頭插入、表尾插入) 、求長度、插入、刪除、輸出 ***//***********單鏈表的初始化、建立、輸出 *****************//***********#include<stdio.h>#include<stdlib.h>typedefstructLnode{/*定義線性表的單鏈表存儲結(jié)構(gòu) */intdata;structLnode*next;}LinkList;/****************單鏈表的初始化*************************//****************單鏈表的初始化*************************/Initlist(LinkList*L){/*動態(tài)申請存儲空間 */L=(LinkList*)malloc(sizeof(structLnode));/*建立頭結(jié)點(diǎn) */L->next=NULL;}***************//*************建立一個(gè)帶頭結(jié)點(diǎn)的單鏈表,在表尾插入***************/Create_L(LinkList*L,intn){LinkList*p,*q;inti;Initlist(L);/*單鏈表初始化 */q=L;printf("inputthevalue\n");for(i=n;i>0;--i){p=(LinkList*)malloc(sizeof(structLnode));scanf("%d",&p->data);/*輸入元素值 */q->next=p;p->next=NULL;q=p;/*插入到表尾 */}}/*Create_L*//*************建立一個(gè)帶頭結(jié)點(diǎn)的單鏈表,在表頭插入Create_L(LinkList*L,intn){LinkList*p;inti;
數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16頁,當(dāng)前為第2數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16頁,當(dāng)前為第2頁。/*需要注意第一個(gè)數(shù)據(jù)插入時(shí)的情況/*InserttheFirsetnodep=(LinkList*)malloc(sizeof(structLnode));printf("inputthevalue\n");scanf("%d",&p->data); /*輸入元素值L->next=p;p->next=NULL;/*將第二個(gè)及后面的數(shù)據(jù)插入for(i=n-1;i>0;--i){p=(LinkList*)malloc(sizeof(structLnode));printf("inputavalue\n");scanf("%d",&p->data);/*輸入元素值p->next=L->next;L->next=p;/*插入到表頭}求單鏈表的長度 ***********************/}/*求單鏈表的長度 ***********************//*************************intLength_LinkList(LinkList*L){LinkList*p;inti=0;p=L->next;while(p!=NULL){i++;p=p->next;}returni;}/*Length_LinkList*//*************************在第i個(gè)結(jié)點(diǎn)前插入數(shù)據(jù)x*********************/Insert_LinkList(LinkList*L,inti,intx){LinkList*p,*s;intj=0;p=L;/*尋找第i個(gè)結(jié)點(diǎn)*/while(j<i-1&&p!=NULL)
數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16頁,當(dāng)前為第3頁。p=p->next;}if(!p)return0;/*如果表長小于 i,則無意義 *//*插入元素 x*/s=(LinkList*)malloc(sizeof(structLnode));s->data=x;s->next=p->next;p->next=s;刪除第刪除第i個(gè)元素,并用將其值返回 **********************intDelete_LinkList(LinkList*L,inti){LinkList*p,*q;inty;intj=0;p=L;/*尋找第i個(gè)結(jié)點(diǎn)*/while(j<i-1&&p!=NULL){++j;p=p->next;}if(!p)return0;/*如果表長小于 i,則無意義 */q=p->next;y=q->data;p->next=q->next;free(q);returny;}/*Delete_LinkList*/****************/voiddisplay(LinkList*L) /*字母鏈表的輸出 */{LinkList*p;p=L->next;while(p!=NULL)printf("%d",p->data);p=p->next;/*************main(){LinkList*L;數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16頁,當(dāng)前為第4頁。intn=0;intx=15;inty;inti=4;L=(LinkList*)malloc(sizeof(structLnode));/*L->data=0;*/L->next=NULL;printf("inputthelengthofL,n\n");scanf("%d",&n);printf("\n");Create_L(L,n);Insert_LinkList(L,i,x);/*y=Delete_LinkList(L,i);printf("thedeleteelmentisy=%d\n",y);len=Length_LinkList(L);printf("thelengthofLis%d",len);*/display(L);getch();}
數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16頁,當(dāng)前為第數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16頁,當(dāng)前為第5頁。#include<stdio.h>#include<stdlib.h>typedefstructLnode{/*定義線性表的單鏈表存儲結(jié)構(gòu) */intdata;structLnode*next;}LinkList;/*************Create***************/Link_Creat(LinkList*L,intn){LinkList*q,*p;inti;printf("inputthedata\n");scanf("%d",&L->data);p=L;for(i=2;i<=n;i++){q=(LinkList*)malloc(sizeof(structLnode));scanf("%d",&q->data);p->next=q;q->next=NULL;p=q;}}/**************OutPut*********************/Link_Display(LinkList*L){LinkList*p;p=L;while(p!=NULL){printf("%d",p->data);p=p->next;}}/**Main()***//**Main()***/main(){數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16頁,當(dāng)前為第6頁。intn;L=(LinkList*)malloc(sizeof(structLnode));L->data=0;L->next=NULL;printf("PleaseinputthelengthofLinkList,n\n");scanf("%d",&n);Link_Creat(L,n);Link_Display(L);getch();}數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16頁,當(dāng)前為第7頁。/*********順序表的建立、查找、插入運(yùn)算數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16頁,當(dāng)前為第7頁。#include<stdio.h>#include<stdlib.h>typedefintdatatype;#definelist_maxsize20/*********definefornodestruct************/typedefstruct{datatypedata[list_maxsize];intlength;}SqList;/**********InitList/**********InitList************/voidInitList(SqList*L){L->length=0;}/*******CreatSqList********/voidCreate_SqList(SqList*L){inti=0;InitList(L);printf("inputSqList.data\n");scanf("%d",&L->data[0]);while(L->data[i]!=-1){++i;scanf("%d",&(L->data[i]));}L->length=i;}/*********thelengthofSqList****************/intListLength(SqList*L){returnL->length;}/************GetElemL->data[i]************/intGetElem(SqList*L,inti){if(i<1||i>L->length)數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16頁,當(dāng)前為第數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16頁,當(dāng)前為第8頁。}elsereturnL->data[i-1];}/**OutputtheSqList**************//**voidDisplay_SqList(SqList*L){inti,n;n=ListLength(L);printf("thelengthis%d",n);for(i=0;i<n;i++)printf("%d",L->data[i]);}/****************Main()**************************/main(){SqList*L;/*printf("inputthelengthofSqList\n");scanf("%d",&len);*/Create_SqList(L);Display_SqList(L);getch();}數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16頁,當(dāng)前為第數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16頁,當(dāng)前為第9頁。/*********順序表的歸并運(yùn)算 ********/#include<stdio.h>#include<stdlib.h>typedefintdatatype;#definelist_maxsize20/*********definefornodestruct************/typedefstruct{datatypedata[list_maxsize];intlength;}SqList;/**********InitList/**********InitList*/voidInitList(SqList*L){L->length=0;}/************CreatSqList*************//************voidCreate_SqList(SqList*L)inti=0;InitList(L);printf("inputthedataofSqList\n");scanf("%d",&L->data[0]);while(L->data[i]!=-1){++i;scanf("%d",&(L->data[i]));}L->length=i;}/*********thelengthofSqList****************/intListLength(SqList*L){returnL->length;}/************GetElem/************GetElemL->data[i]************/intGetElem(SqList*L,inti){數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16頁,當(dāng)前為第10數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16頁,當(dāng)前為第10頁。{printf("GetelemPositionError");return;}returnL->data[i-1];}/************InsertOperation*********//************voidListInsert(SqList*L,inti,intx){SqList*q,*p;if(i<1||i>L->length){printf("theinsertpositionerror");return;}q=&(L->data[i-1]); /*q為插入位置 */for(p=&(L->data[L->length-1]);p>=q;--p)*(p+1)=*p;L->data[i-1]=x;++L->length;}/*********LAandLBMergedLC***************/voidMergeList(SqList*LA,SqList*LB,SqList*LC){intLa_len,Lb_len,ai,bj;inti,j;intk;i=j=1;InitList(LC);La_len=ListLength(LA);Lb_len=ListLength(LB);LC->length=La_len+Lb_len;/*for(k=0;k<LC->length;k++)LC->data[k]=0;*/k=0;while((i<=La_len)&&(j<=Lb_len)){ai=GetElem(LA,i);bj=GetElem(LB,j);if(ai<bj){++k;ListInsert(LC,k,ai);++i;}elseif(ai==bj)數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16頁,當(dāng)前為第11頁。++k;ListInsert(LC,k,ai);++k;ListInsert(LC,k,bj);++i;++j;}else{++k;ListInsert(LC,k,bj);++j;}}while(i<=La_len){/*AppendtheresidualnodeintoLA*/ai=GetElem(LA,i);++i;++k;ListInsert(LC,k,ai);}while(j<=Lb_len){/*AppendtheresidualnodeintoLA*/bj=GetElem(LB,j);++j;++k;ListInsert(LC,k,bj);}LC->length=La_len+Lb_len;}/**OutputtheSqList**************//**voidDisplay_SqList(SqList*L){inti,n;n=ListLength(L);printf("thelengthis%d",n);for(i=0;i<n;i++)printf("%d",L->data[i]);數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16頁,當(dāng)前為第12頁。/****************Main()**************************/數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16頁,當(dāng)前為第12頁。{SqList*LA,*LB,*LC;Create_SqList(LA);Create_SqList(LB);MergeList(LA,LB,LC);Display_SqList(LC);getch();}數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16頁,當(dāng)前為第13頁。5./****用帶頭結(jié)點(diǎn)的循環(huán)單鏈表解決約瑟夫問題數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16頁,當(dāng)前為第13頁。#include<stdio.h>#include<stdlib.h>typedefstructLnode{/*定義線性表的單鏈表存儲結(jié)構(gòu) */intdata;structLnode*next;}LinkList;/****************單鏈表的初始化 *************************/Initlist(LinkList*L){/*動態(tài)申請存儲空間 */L=(LinkList*)malloc(sizeof(structLnode));/*建立頭結(jié)點(diǎn) */L->next=L;}/*************建立一個(gè)帶頭結(jié)點(diǎn)的循環(huán)單鏈表, 數(shù)據(jù)值為 1,2,3,...n,在表尾插入 ***************/Create_L(LinkList*L,intn){LinkList*p;inti;Initlist(L);/*單鏈表初始化p=L;for(i=n;i>0;--i){q=(LinkList*)malloc(sizeof(structLnode));q->data=i;/*輸入元素值p->next=qq->next=L;/*插入到表尾}}/*Create_L*//*******************voiddisplay(LinkList*L){LinkList*p;p=L->next;while(p->next!=L)單鏈表值的輸出 ****************//*字母鏈表的輸出 */數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16頁,當(dāng)前為第14頁。}}/*************主程序*/main()LinkList*L;intn;L=(LinkList*)malloc(sizeof(structLnode));/*L->data=0;*/L->next=L;printf("inputthelengthofL,n\n");scanf("%d",&n);printf("\n");Create_L(L,n);display(L);getch();}數(shù)據(jù)結(jié)構(gòu)線性表的主要程序代碼全文共16頁,當(dāng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 抖音直播年終總結(jié)匯報(bào)
- 創(chuàng)新工程實(shí)踐活動總結(jié)
- 緩解分離焦慮培訓(xùn)課件
- 高中物理第十二章機(jī)械波3波長頻率和波速課件新人教版選修3-
- 山西省運(yùn)城市平陸縣多校2024-2025學(xué)年二年級上學(xué)期期中數(shù)學(xué)試題
- 河南省鄧州市春雨國文學(xué)校2024-2025學(xué)年高三上學(xué)期10月月考英語試卷(含答案)
- T-XMSSAL 0104-2024 供廈食品 可生食雞蛋
- 期中摸底測試(1-4單元)(試題)-2024-2025學(xué)年三年級上冊數(shù)學(xué)人教版
- 會計(jì)師事務(wù)所的組織形式
- 投訴管理與投訴處理
- DB11T 527-2021 配電室安全管理規(guī)范
- 《數(shù)字身份辯設(shè)備》課件+2024-2025學(xué)年人教版(2024)初中信息科技七年級全一冊
- 初中踐行勞動教育做新時(shí)代好少年主題班會課件
- 河南省部分學(xué)校2024-2025學(xué)年高三上學(xué)期10月大聯(lián)考物理試卷(無答案)
- 人教版四年級數(shù)學(xué)上冊知識歸納期末復(fù)習(xí)
- 小學(xué)三年級數(shù)學(xué)口算 3位乘或除1位第1-10篇
- 申請失業(yè)保險(xiǎn)金承諾書
- 2024年黑龍江龍江森工集團(tuán)招聘筆試參考題庫含答案解析
- 2024年通用技術(shù)集團(tuán)招聘筆試參考題庫含答案解析
- 《體育保健學(xué)》課件-第三章 運(yùn)動性病癥
- 大學(xué)生勞動教育通論知到章節(jié)答案智慧樹2023年大連海洋大學(xué)
評論
0/150
提交評論