版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1Character
00000線性表2
2.2線性表2.2.1線性表的基本概念線性表是n個(gè)元素的有限序列,它們之間的關(guān)系可以排成一個(gè)線性序列:a1,a2,...,ai,...,an線性結(jié)構(gòu)中各數(shù)據(jù)成員之間的線性關(guān)系:有直接前驅(qū)和直接后繼(除最前、最后一個(gè)元素)3在線性表上常用的運(yùn)算有:初始化求長(zhǎng)度取元素修改前插刪除檢索排序4設(shè)線性表的基地址為:LOC(a1),ai的存儲(chǔ)地址為:
LOC(ai)=LOC(a1)+(i-1)*k1<=i<=na1a2aian……Loc(a1)Loc(a1)+kLoc(a1)+(i-1)*kLoc(a1)+(n-1)*k
2.2.2線性表的存儲(chǔ)結(jié)構(gòu)及其運(yùn)算線性表的順序存儲(chǔ)結(jié)構(gòu)
把數(shù)據(jù)元素按照邏輯順序依次存放到一組連續(xù)的存儲(chǔ)單元中。5元素1元素2……..元素n……..01n-1V[0]
線性表的順序存儲(chǔ)結(jié)構(gòu)——可用C語言中的一維數(shù)組來描述.#defineM100//定義M為常數(shù)100,M的值作為數(shù)組的最大容量
intV[M];//V是數(shù)組的名字,假設(shè)數(shù)組中的數(shù)據(jù)元素是整型類型intlength;//當(dāng)前長(zhǎng)度V[1]V[n]V[M-1]6…..a2a1alength…..ai+1ai01i-1ilength-11順序表的插入運(yùn)算ai-1…..a2a1alength
…ai+1ai
xP(P+1)q
ai-1…..
a2
a1
ai
ai+1
…alength
alength
…
…ai+1
ai
x7intinsq(inti,intx,intV[],intM,int*p){/*在線性表中V中第i個(gè)元素之前插入x,M是存儲(chǔ)空間大小,p是指針變量,指向存儲(chǔ)表長(zhǎng)的變量*/intn,j;n=*p;/*獲取表長(zhǎng)*/if(n==M){printf(“overflow\n”);return(0);}if(i<1‖i>n+1)
{printf(“Itiserror\n”);return(0);}//i值不合法else{for(j=n;j>=i;j--)V[j]=V[j-1];V[j]=X;*p=++n;//表長(zhǎng)加1,有p返回到函數(shù)調(diào)用處
return(1);}}
voidmain(){ intM=10,n=4; intresult,k; staticintV[10]={3,5,7,10};
result=insq(2,4,V,M,&n); if(result==1){printf("success\n"); for(k=0;k<n;k++)printf("%d",V[k]);} elseprintf("failure");}8intdelsq(inti,intV[],int*p){/*在線性表中V中刪除第i個(gè)元素*/intn,j;if(i<1‖i>n)
{printf(“Thiselementisnotinthelist\n”);return(0);}//i值不合法else
{for(j=i;j<n;j++)V[j-1]=V[j];*p=--n;//表長(zhǎng)減1return(1);}}voidmain(){ intM=10,n=4; intresult,k; staticintV[10]={3,5,7,10};
result=delsq(2,V,&n); if(result==1){printf("success\n"); for(k=0;k<n;k++)printf("%d",V[k]);} elseprintf("failure");}順序表的刪除運(yùn)算9特點(diǎn):便于隨機(jī)存取表中的任一個(gè)數(shù)據(jù)元素,做插入、刪除時(shí)需移動(dòng)大量元素。靜態(tài)分配空間,無法動(dòng)態(tài)分配。表中元素個(gè)數(shù)是動(dòng)態(tài)變化時(shí),按最大空間分配。適用于需要頻繁查找操作的線性表10線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
是一種常見的重要的數(shù)據(jù)結(jié)構(gòu)。它是動(dòng)態(tài)地進(jìn)行存鏈表儲(chǔ)分配的一種結(jié)構(gòu)。線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的含義是指邏輯上相鄰的數(shù)據(jù)元素在內(nèi)存中的物理存儲(chǔ)空間不一定相鄰。每個(gè)數(shù)據(jù)元素對(duì)應(yīng)內(nèi)存一個(gè)存儲(chǔ)空間,叫存儲(chǔ)結(jié)點(diǎn),簡(jiǎn)稱結(jié)點(diǎn)。1112將線性表的元素放到一個(gè)具有頭指針的鏈表中,鏈表中每個(gè)結(jié)點(diǎn)包含數(shù)據(jù)域和指針域。特點(diǎn):插入、刪除靈活方便,不需要移動(dòng)結(jié)點(diǎn),只要改變結(jié)點(diǎn)中指針域的值即可。datanextdata域--存放結(jié)點(diǎn)值的數(shù)據(jù)域next域--存放結(jié)點(diǎn)的直接后繼的地址(位置)的指針域(鏈域)13a1a2an∧a3L…..typedef
structLNode{intdata;structLNode*next;}listnode;線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)——可用C語言中的“結(jié)構(gòu)指針”來描述帶頭結(jié)點(diǎn)的線性鏈表datanext1415①生成結(jié)點(diǎn)變量的標(biāo)準(zhǔn)函數(shù)
p=(ListNode*)malloc(sizeof(ListNode));//函數(shù)malloc分配一個(gè)類型為L(zhǎng)istNode的結(jié)點(diǎn)變量的空間,并將其首地址放入指針變量p中②釋放結(jié)點(diǎn)變量空間的標(biāo)準(zhǔn)函數(shù)free(p);//釋放p所指的結(jié)點(diǎn)變量空間③結(jié)點(diǎn)分量的訪問
利用結(jié)點(diǎn)變量的名字*p訪問結(jié)點(diǎn)分量方法一:(*p).data和(*p).next
方法二:p-﹥data和p-﹥next④指針變量p和結(jié)點(diǎn)變量*p的關(guān)系指針變量p的值——結(jié)點(diǎn)地址結(jié)點(diǎn)變量*p的值——結(jié)點(diǎn)內(nèi)容
(*p).data的值——p指針?biāo)附Y(jié)點(diǎn)的data域的值
(*p).next的值——*p后繼結(jié)點(diǎn)的地址
1617voidinsertlist(listnode*L,charx){listnode*p,*s;p=L;if(p==NULL)printf("positionerror");s=(listnode*)malloc(sizeof(listnode));s->data=x;s->next=p->next;p->next=s;}babaxPP5單鏈表的插入運(yùn)算S18ai-1a1aiai+1headprvoiddeletelist(listnode*p){listnode*r;if(p->next!=NULL){r=p->next;p->next=r->next;free(r);}}單鏈表的刪除運(yùn)算19線性鏈表的查找操作listnode*reseach(listnode*h,intx){listnode*p;p=h;while(p!=NULL&&p->data!=x)p=p->next;return(p);}20.循環(huán)鏈表:首尾相接的鏈表。將最后一個(gè)結(jié)點(diǎn)的空指針改為指向頭結(jié)點(diǎn),從任一結(jié)點(diǎn)出發(fā)均可找到其它結(jié)點(diǎn)。.雙向鏈表
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年農(nóng)業(yè)科技園區(qū)場(chǎng)地合作經(jīng)營(yíng)協(xié)議書4篇
- 科技禮儀在商務(wù)中的應(yīng)用
- 兩人合伙買房協(xié)議書標(biāo)準(zhǔn)版
- 2025年度茶葉品牌授權(quán)經(jīng)營(yíng)合同書4篇
- 個(gè)人信用貸款協(xié)議2024年匯編
- 專業(yè)洗車工2024年服務(wù)協(xié)議樣本版A版
- 2025年度體育產(chǎn)業(yè)市場(chǎng)調(diào)研服務(wù)合同書4篇
- 二零二四年一帶一路建設(shè)項(xiàng)目合同
- 2025年度智能交通系統(tǒng)規(guī)劃與設(shè)計(jì)合同范本下載4篇
- 2025年度酒店場(chǎng)地經(jīng)營(yíng)承包協(xié)議范本3篇
- 割接方案的要點(diǎn)、難點(diǎn)及采取的相應(yīng)措施
- 2025年副護(hù)士長(zhǎng)競(jìng)聘演講稿(3篇)
- 2025至2031年中國(guó)臺(tái)式燃?xì)庠钚袠I(yè)投資前景及策略咨詢研究報(bào)告
- 原發(fā)性腎病綜合征護(hù)理
- 第三章第一節(jié)《多變的天氣》說課稿2023-2024學(xué)年人教版地理七年級(jí)上冊(cè)
- 2025年中國(guó)電科集團(tuán)春季招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年度建筑施工現(xiàn)場(chǎng)安全管理合同2篇
- 建筑垃圾回收利用標(biāo)準(zhǔn)方案
- 2024年考研英語一閱讀理解80篇解析
- 樣板間合作協(xié)議
- 福建省廈門市2023-2024學(xué)年高二上學(xué)期期末考試語文試題(解析版)
評(píng)論
0/150
提交評(píng)論