



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
本文格式為Word版,下載可任意編輯——數據結構源代碼(C語言描述)數據結構源代碼歸納(一)
2023年08月01日星期五23:46第一章緒論P8
例:計算f=1!+2!+3!+…+n!,用C語言描述。voidfactorsum(n)intn;{
inti,j;intf,w;f=0;
for(i=1;i〈=n;i++){
w=1;
for(j=1;j〈=i;j++)w=w*j;f=f+w;}
return;}
其次章線性表
P16
intInsert(ElemtypeList[],int*num,inti,Elemtypex)
{/*在順序表List[]中,*num為表尾元素下標位置,在第i個元素前插入數據元素x,若成功,返回TRUE,否則返回FALSE。*/intj;
if(inext=NULL;
returnTRUE;}
P22
{s=(slnodetype*)malloc(sizeof(slnodetype));s->data=x;
s->next=p->next;p->next=s;}
P22{q=head;
while(q->next!=p)q=q->next;
s=(slnodetype*)malloc(sizeof(slnodetype));s->data=x;s->next=p;q->next=s;}
P23intinsert(slnodetype*h,inti,Elemtypex)
{/*在鏈表h中,在第i個數據元素前插入一個數據元素x*/slnodetype*p,*q,*s;intj=0;p=h;
while(p!=NULLj++;/*尋覓第i-1個結點*/}if(j!=i-1){printf(\/*插入位置錯誤*/}
if((s=(slnodetype*)malloc(sizeof(slnodetype)))==NULL)returnFALSE;s->data=x;
s->next=p->next;q->next=s;returnTRUE;}
P23例:下面C程序中的功能是,首先建立一個線性鏈表head={3,5,7,9},其元素值依次為從鍵盤輸入正整數(以輸入一個非正整數為終止);在線性表中值為x的元素前插入一個值為y的數據元素。若值為x的結點不存在,則將y插在表尾。
#include\#include\structslnode{intdata;
structslnode*next;}/*定義結點類型*/main(){intx,y,d;
structslnode*head,*p,*q,*s;head=NULL;/*置鏈表空*/q=NULL;
scanf(\輸入鏈表數據元素*/
while(d>0)
{p=(structslnode*)malloc(sizeof(structslnode));/*申請一個新結點*/p->data=d;
p->next=NULL;
if(head==NULL)head=p;/*若鏈表為空,則將頭指針指向當前結點p*/elseq->next=p;/*鏈表不為空時,則將新結點鏈接在最終*/q=p;/*將指針q指向鏈表的最終一個結點*/scanf(\
scanf(\
s=(structslnode*)malloc(sizeof(structslnode));s->data=y;
q=head;p=q->next;
while((p!=NULL)p=p->next;}/*查找元素為x的指針*/s->next=p;q->next=s;/*插入元素y*/}
P24intDelet(slnodetype*h,inti)
{/*在鏈表h中刪除第i個結點*/slnodetype*p,*s;intj;p=h;j=0;
while(p->next!=NULLj=j+1;/*尋覓第i-1個結點,p指向其前驅*/}if(j!=i-1)
{printf(\刪除位置錯誤!*/returnFALSE;}s=p->next;
p->next=p->next->next;/*刪除第i個結點*/free(s);/*釋放被刪除結點空間*/returnTRUE;}
P25例:假設已有線性鏈表La,編制算法將該鏈表逆置。voidconverse(slnodetype*head){slnodetype*p,*q;p=head->next;
head->next=NULL;while(p!=NULL){q=p->next;
p->next=head->next;head->next=p;p=q;}
}
P27例:將兩個循環鏈表首尾相接。La為第一個循環鏈表表尾指針,Lb為其次個循環鏈表表尾指針。合并后Lb為新鏈表的尾指針。Voidmerge(slnodetype*La,slnodetype*Lb){slnodetype*p;p=La->next;
Lb->next=La->next;La->next=p->next;free(p);}
P29
intinsert_dul(dlnodetype*head,inti,Elemtypex)
{/*在帶頭結點的雙向鏈表中第i個位置之前插入元素x*/dlnodetype*p,*s;intj;p=head;j=0;
while(p!=NULLj++;}if(j!=i||idata=x;
s->prior=p->prior;/*圖中步驟①*/p->prior->next=s;/*圖中步驟②*/s->next=p;/*圖中步驟③*/p->prior=s;/*圖中步驟④*/returnTRUE;}
P3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年廣東食品藥品職業學院高職單招(數學)歷年真題考點含答案解析
- 2025年山西藝術職業學院高職單招高職單招英語2016-2024歷年頻考點試題含答案解析
- 2025年山西華澳商貿職業學院高職單招職業適應性測試歷年(2019-2024年)真題考點試卷含答案解析
- 2025年安徽警官職業學院高職單招高職單招英語2016-2024歷年頻考點試題含答案解析
- 2025年寧德職業技術學院高職單招職業技能測試近5年常考版參考題庫含答案解析
- 2025年婁底職業技術學院高職單招職業適應性測試歷年(2019-2024年)真題考點試卷含答案解析
- 2025年天津工藝美術職業學院高職單招(數學)歷年真題考點含答案解析
- 2025年天津城市建設管理職業技術學院高職單招高職單招英語2016-2024歷年頻考點試題含答案解析
- 基本安全培訓課件
- 氣管插管麻醉的護理配合
- 2025年中國短圓柱滾子軸承市場調查研究報告
- 教師的情緒管理課件
- 湖北省十一校2024-2025學年高三第二次聯考數學試卷(解析版)
- 英語-華大新高考聯盟2025屆高三3月教學質量測評試題+答案
- 《手工制作》課件-幼兒園掛飾
- 【初中地理】西亞+課件-2024-2025學年人教版地理七年級下冊
- 鼓勵員工發現安全隱患的獎勵制度
- 蘇教版一年級下冊數學全冊教學設計(配2025年春新版教材)
- 人武專干考試題型及答案
- 2025屆高三化學二輪復習 化學反應原理綜合 課件
- 2025年北京五湖四海人力資源有限公司招聘筆試參考題庫含答案解析
評論
0/150
提交評論