版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)結(jié)構(gòu)編程實(shí)例1 順序表的基本操作#define LEN 100typedef struct sqlistint aLEN;int length;void init(struct sqlist *sq) /*初始化*/int i; for (i=0;i<LEN;i+) sq->ai=0; sq->length=0;void creat(struct sqlist *sq) /*建順序表*/int i; printf("please input length"); scanf("%d",&sq->length); prin
2、tf("please input %d numsn",sq->length); for (i=1; i<=sq->length;i+) scanf("%d",&sq->ai); void print(struct sqlist *sq) /*輸出順序表*/ int i; for (i=1; i<=sq->length;i+) printf(" %d",sq->ai); printf("n");void insert(struct sqlist *sq,int pos
3、, int x) /*順序表插入元素*/int i; for (i=sq->length;i>=pos;i-) sq->ai+1=sq->ai; sq->apos=x; sq->length=sq->length+1; int delete(struct sqlist *sq,int pos) /*順序表刪除元素*/int i,x; x=sq->apos; for (i=pos+1;i<=sq->length;i+) sq->ai-1=sq->ai; sq->length=sq->length-1; retur
4、n(x); main()int position,x; struct sqlist *list; struct sqlist slist; int xz=0; list =&slist; while (1) printf("1.initn"); printf("2.creatn"); printf("3.insertn"); printf("4.deleten"); printf("5.locate_valuen"); printf("6.locate_posn");
5、 printf("7.printn"); printf("0.exitn"); printf("please input your choice"); scanf("%d",&xz); switch(xz) case 1:init(list);break; case 2:creat(list);break; case 3:printf("pleast input inset position(pos) and value(x)"); scanf("%d%d",&
6、;position,&x); if (position<1|position>list->length+1|list->length>=LEN)printf("position errorn"); else insert(list,position,x); break; case 4:printf("pleast input delete position(pos)"); scanf("%d",&position); if (position<1|position>list-&
7、gt;length|list->length=0)printf("position errorn"); elseprintf("delete position=%d,delete data=%dn",position,delete(list,position); break; case 5:; case 6:; case 7:print(list);break; case 0:exit(0); 2 三種方法建立鏈表#include <stdio.h>typedef struct nodeint data; struct node *li
8、nk;NODE;NODE *creat1() /*按輸入數(shù)據(jù)的順序建立鏈表,輸入數(shù)據(jù)通過個(gè)數(shù)控制*/int i,data,n;NODE *h=NULL,*p,*last=NULL;printf("please input the num:");scanf("%d",&n);printf("please input %d datas:",n);for (i=1;i<=n;i+) p=(NODE*) malloc (sizeof (NODE); scanf("%d",&p->data); i
9、f (i=1) h=p; else last->link=p; last=p; last->link=NULL; return(h);NODE *creat2()/*按輸入數(shù)據(jù)的逆序建立鏈表,輸入數(shù)據(jù)以0結(jié)束*/int data;NODE *h=NULL,*p;printf("please input datas(0 end)n");scanf("%d",&data);while (data) p=(NODE*) malloc (sizeof (NODE); p->data=data; if (h=NULL) h=p; h-&g
10、t;link=NULL; else p->link=h; h=p; scanf("%d",&data); return(h);NODE *creat3()/*按輸入數(shù)據(jù)的大小順序建立帶頭結(jié)點(diǎn)的鏈表,輸入數(shù)據(jù)以0結(jié)束*/int data;NODE *h,*p,*q,*r;h=(NODE*) malloc (sizeof (NODE); h->link=NULL;printf("please input datas(0 end)n");scanf("%d",&data);while (data) p=(NODE
11、*) malloc (sizeof (NODE); p->data=data; p->link=NULL; if (h->link=NULL) h->link=p; else r=h; q=r->link; while (p->data>q->data && q) r=q; q=q->link; if (q) p->link=q; r->link=p; scanf("%d",&data); return(h->link); main()NODE *h,*p; int x; do
12、printf("=n"); printf("1.zhengxujianlianbiaon"); printf("2.nixujianlianbiaon"); printf("3.jianliyouxulianbiaon"); printf("0.tuichun"); printf("=n"); printf("please input your chosice"); scanf("%d",&x); switch(x) case
13、1: h=creat1();break; case 2: h=creat2();break; case 3: h=creat3();break; case 0: return; p=h; while (p) printf("%5d",p->data); p=p->link; printf("nn"); while (x);3 試寫出逆轉(zhuǎn)線性單鏈表的算法要逆轉(zhuǎn)一個(gè)線性單鏈表,只需從頭指針指向的結(jié)點(diǎn)開始掃描該鏈表,在掃描過程中改變各結(jié)點(diǎn)的指針(由指向后件改為指向原來的前件)即可。Struct node/*ET位數(shù)據(jù)元素類型*/ET d;struc
14、t node *next;invlst(head)struct node *head ;struct node *p, *q, *r ;if (*head=NULL) return;p=*head; q=p->next;p->next=NULL;while (q!=NULL)r=q->next; q->next=p;p=q; q=r;*head=p;return; 4 設(shè)有兩個(gè)有序線性單鏈表,頭指針分別為AH和BH。試寫出將兩個(gè)有序線性單鏈表合并為一個(gè)頭指針為CH的有序線性單鏈表的算法,要求去掉重復(fù)元素。Struct node/*ET位數(shù)據(jù)元素類型*/ET d;stru
15、ct node *next;#include “stdio.h”mglst1(ah,bh,ch)struct node ah,bh,*ch;struct node *i, *j, *k, *p;et x;i=ah; j=bh; *ch=NULL; k=NULL;while (i!=NULL)&&(j!=NULL)if (j->d>=i->d) x=i->d; i=i->next;else x=j->d; j=j->next;if (*ch=NULL)p=(struct node *) malloc (sizeof(struct node
16、);p->d=x; *ch=p; k=p;else if (d!=k->d)p=(struct node *) malloc (sizeof(struct node);p->d=x; k->next=p; k=p;if (j=NULL)while (i!=NULtructL)x=i->d; i=i->next;if (*ch=NULL)p=(struct node *) malloc (sizeof(struct node);p->d=x; *ch=p; k=p;else if (d!=k->d)p=(struct node *) malloc
17、(sizeof(struct node);p->d=x; k->next=p; k=p;elsewhile (j!=NULL)x=j->d; j=j->next;if (*ch=NULL)p=(struct node *) malloc (sizeof(struct node);p->d=x; *ch=p; k=p;else if (d!=k->d)p=(struct node *) malloc (sizeof(struct node);p->d=x; k->next=p; k=p;if (k!=NULL) k->next=NULL;re
18、turn;5 試編寫在二叉排序樹中插入一個(gè)元素的算法。include “stdlib.h”struct btnodeET d;struct btnode *lchild;struct btnode *rchild;struct btnode *insort(bt,b)struct btnode *bt;ET b;struct btnode *p, *q;p=(struct btnode *)malloc (sizeof(struct btnode);p->d=b; p->lchild=NULL; p->rchild=NULL;q=bt;if (q=NULL) bt=p;else while (q->lchild!=p) && (q->rchild!=p)if (b<q->d)if (q->lchild!=NULL) q=q->lchild;el
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年教育輔助機(jī)構(gòu)勞動(dòng)合同及教學(xué)質(zhì)量協(xié)議3篇
- 二零二五年環(huán)保產(chǎn)品生產(chǎn)加工合作合同范本2篇
- 二零二五年度塑料加工工廠承包生產(chǎn)與環(huán)保責(zé)任合同3篇
- 濰坊護(hù)理職業(yè)學(xué)院《學(xué)習(xí)科學(xué)與技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 天津藝術(shù)職業(yè)學(xué)院《燈光照明基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年度高科技設(shè)備租賃擔(dān)保服務(wù)合同3篇
- 2024民間借貸合同(自動(dòng)放棄利息)
- 二零二五年影視制作項(xiàng)目投資合同正本3篇
- 二零二五版影視制作借款合同示范文本2篇
- 2025年度餐飲股份合作開發(fā)項(xiàng)目合同3篇
- 金蝶云星辰初級考試題庫
- 常見老年慢性病防治與護(hù)理課件整理
- 履約情況證明(共6篇)
- 云南省迪慶藏族自治州各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細(xì)
- 設(shè)備機(jī)房出入登記表
- 六年級語文-文言文閱讀訓(xùn)練題50篇-含答案
- 醫(yī)用冰箱溫度登記表
- 零售學(xué)(第二版)第01章零售導(dǎo)論
- 口袋妖怪白金光圖文攻略2周目
- 光伏發(fā)電站集中監(jiān)控系統(tǒng)通信及數(shù)據(jù)標(biāo)準(zhǔn)
- 三年級下冊生字組詞(帶拼音)
評論
0/150
提交評論