版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第二章線性表 12章線性表(Liner線性表的抽象數(shù)據(jù)線性表的實(shí)棧串?dāng)?shù)組廣義表(Generalized
第二章線性表 2
第二章線性 3
第二章線性表 4線性表的抽象數(shù)據(jù)[定義]線性表是由n(n≥0)(a1,a2,a3,……ai-1,ai,ai+1,…… 其中:①n為線性表中元素個數(shù),稱為線性表的長度;當(dāng)n=0時,為空表,記為()。②ai為線性表中的元素,類型定義為③a1為表中第1個元素,無前驅(qū)元素;an為表中最后一個④線性表是有限的,也是有序的
第二章線性表 5線性表LISTDD={ai|ai∈Elementset,i=1,2,…,n,n≥0R={HH={<ai-1,ai>|ai-1,ai∈D,i=2,…,n
第二章線性表 6操作:設(shè)L的型為LIST線性表實(shí)例,x的型為elementtype的元素實(shí)例p為位置變量。所有操作描述為①Insert(x,p,②Locate(x,③Retrive(p,④Delete(p,⑤Previous(p,L),Next(p,⑥Makenull(⑦First(⑧
第二章線性表 7例:設(shè)計函數(shù)Deleval(LIST&L,elementtype 為刪除L中所有值為d的元素。voidDeleval(LIST&L,elementtyped{positionpp=First(L)while(p!=End(L){if(same(Retrieve(p,L),d))Delete(p,L);p=Next(p,L)}}
第二章線性表 8 結(jié)構(gòu)的三種方式①連續(xù) 空間(數(shù)組 →靜②非連 空間——指針(鏈表 →動 游標(biāo)(連 空間+動態(tài)管理思想)→靜態(tài)鏈
第二章線性表 9順序是指用一組地址連續(xù) 單元依 線性表的數(shù)據(jù)元素特元間的邏輯關(guān)系(相繼/相鄰關(guān)系)用物理上的相鄰關(guān)系來表示(用是一種隨機(jī)結(jié)構(gòu),也就是可以隨機(jī)存取表中的任意元素,其位 第二章線性表 第二章線性表 2— 第個元素2第i121i≤ maxlength-
池容
圖2-1
第二章線性表 #definemaxlength LISTintlast;LISTtypedefint
L.elements[p]//L的第p個元素L.lastL的長度,最后元素的位置
第二章線性表 ①voidInsert(elementtypex,positionp,LIST{positionqifL.lastmaxlength1)error(“);elseif((p>L.last+1)||(p<1)elsefor(q=L.last;q>=p;q--L.elements[q+1]=L.last=L.last+1;L.elements[p]=x;}
L.elements[q]}//時間復(fù)雜性
第二章線性表 ②positionLocate(elementtypex,LISTL positionqfor(q=1;q<=L.last;q++)if(L.elements[q]==x)return(q);return(L.last+1
第二章線性表 ③elementtypeRetrieve(positionp,LISTL{if(p>L.lastreturn(L.elements[p])
第二章線性表 ④voidDelete(positionp,LIST{positionqif((p>L.last)||(p<1){L.last=L.last–for(q=p;q<=L.last;q++)L.elements[q]=L.elements[q+1];}
第二章線性表 ⑤positionPrevious(positionp,LISTL{if((p<=1)||(p>L.last))errorreturn(p–1positionpositionNext(positionp,LISTL{if((p<1)||(p>=L.last))errorreturn(p+1
第二章線性表 ⑥ Makenull(LIST&L{L.last=0return(L.last+1⑦positionFirst(LISTL{return(1⑧positionEnd(LISTL{return(L.last+1}//
第二章線性表 單鏈表:式結(jié)構(gòu),簡稱單向鏈表或單向線性鏈表。結(jié)構(gòu)特點(diǎn)邏輯次序和物理次序不一定相 間的邏輯關(guān)系用指針表示需要額外空 間的關(guān)系非隨 結(jié) 第二章線性表 ∧
pheader
positionp,q;qq 第二章線性表 celltype{elementtypeelement;celltype*next;結(jié)點(diǎn)
typedefcelltype位置typedefcelltype
∧∧header positionp,記法
a2:(*p).elementq:(*p).next
a2:p→element;q:p→next; 第二章線性表 插入元素q=newcelltype;q→element=x;q→next=p→next;p→next=q;
x表頭插入元x或temp=p→nextp→next=newcelltype;p→next→element=x;p→next→next=temp;討論表頭結(jié)點(diǎn)的作用
x x中間插入元∧∧∧x ∧x 入元 第二章線性表 ppqq=p→next;p→next=q→next;deleteq;q=p→nextp→next=p→next→next;deleteq;討論結(jié)點(diǎn)ai
刪除第一個元qqpp∧pq∧刪除表尾元 第二章線性表 操作①positionEnd(LIST positionq;q=L;while(q→next!=NULL)q=q→next;return(q)∧L
第二章線性表 ②voidInsert(elementtypex,position{positionqq=newcelltype;q→element=x;q→next=p→next;p→next=q;完整的插入
第二章線性表
2—voidInsert(LIST&L,positionp,int{LISTq,s;while(s-{s=s-}} 第二章線性表 2—操作:③ Locate(elementtypex,LISTL{positionpp=Lwhile(p→next!=Nullif(p→next→element==x)returnp;p=p→next;returnp; L
…∧
第二章線性表 ④elementtypeRetrieve(position{return(p→next→element⑤ Delete(position positionqif(p→next!=NULL q=p→nextp→next=q→next;deleteq;} 第二章線性表 q
∧ positionPrevious(position∧{positionqif(p==L→nexterror(“不 {q=Lwhile(q→next!=p)q=q→next;returnq
第二章線性表 操作positionNextposition{positionqif(p→next==NULL{q=returnq}}//時間復(fù)雜性⑦positionMakenull(LIST&L{L=newcelltype;L→next=NULL;returnL;}//時間復(fù)雜性
第二章線性表 操作positionFirstLISTL{return}//時間復(fù)雜性 Travel(LISTL{positionpp=L→nextwhile(p!={cout<<p→element;p=p→next;}}
第二章線性表 靜態(tài)鏈表與動態(tài)鏈表的比較
第二章線性表 靜態(tài)鏈表把線性表的元素存放在數(shù)組的單元中(不一定按邏輯順序 第二章線性表 結(jié)點(diǎn)形
L7d67d65c0a8e4b213M3結(jié)點(diǎn)信 下一結(jié)點(diǎn)位
9個池 第二章線性表 d65cd65c0a8e4b21typedefstruct7Lelementtypeelement 7L next spacestr;//結(jié)點(diǎn)類3spacestrSPACEmaxsize 3typedefint 3 av;//游標(biāo)變量,標(biāo)識線性67 池 第二章線性表 d65cd65c0a8e4b21L=(a,b,c L= 7M=(d,e M= 72L2空閑表3available= 3元素 3 “型” elementtype(基本、復(fù)合 下一元素位置SPACEi “
池 第二章線性表 1 1 2 9
432{432int5//依 池中結(jié)56for(j=0;j<maxsize-1;j++6778//最后一個接點(diǎn)指針域?yàn)?9SPACE[j].next=-9//標(biāo)識線性 第二章線性表2—3737M
0d6152c30d6152c304a586e74//q=newspacestr{cursor SPACE[*av].next=SPACE[q].next;//av=12}/*從池中刪除
1
//delete SPACE[q].next=SPACE[*av].next;SPACE[*av].next=q;}/*放回池中
第二章線性表 ④voidInsert(elementtypex,positionp,spacestr&SPACE{positionqq=Malloc_SL();SPACE[q].element=x;SPACE[q].next=SPACE[p].next;SPACE[p].next=q;}⑤ Delete(positionp,spacestr&SPACE positionqif(SPACE[p].next!=-1 q=SPACE[p].nextSPACE[p].next=SPACE[q].next;Free_SL(q);
q=newcelltypeq→element=x;q→next=p→next;p→next=q;q=p→next;p→next=q→next;deleteq;}}思考題:利用靜態(tài)鏈表實(shí)現(xiàn)集合運(yùn)算(A-B)U(B-A):從鍵盤輸入集合元素
第二章線性表 L->next-{p->next=L-L-q=q-}
方法二線性表由q來表{}
第二章線性表
2—一個域,用一指向該結(jié)點(diǎn)的前驅(qū)結(jié)點(diǎn)。表的這 結(jié)構(gòu)稱為雙向鏈表 /*結(jié)點(diǎn)類型structdcelltypeelementtypeelement優(yōu)點(diǎn)實(shí)現(xiàn)雙向查找(單鏈表不易做到表中的位置i可以用指示含有第i個結(jié)的指針表示
dcelltype*next,*previous}/*表和位置的類缺點(diǎn):空間開銷大
dcelltype*DLIST;dcelltype*position 第二章線性表 結(jié)點(diǎn)形previouselementap∧an∧前驅(qū)結(jié)點(diǎn)指結(jié)點(diǎn)信后繼結(jié)點(diǎn)指 第二章線性表 2—操作voidInsert(elementtypex,positionaappositionqq=newdcelltype;q→element=x;p→previous→next=q;q→previous=p→previous;q→next=p;p→previous=q}
刪除位置p的元素voidDelete(position{if(p->previous!=NULL)ifp→next→previous=p→previous;deletep;}單單向線性鏈
第二章線性表 雙向線性鏈對線性鏈表的改進(jìn)向操問題;改進(jìn)后的鏈雙向線性鏈雙向循環(huán)鏈置元素開始,表中的每雙向循環(huán)鏈單向循環(huán)鏈單向環(huán)形鏈表:在(不帶表頭結(jié)點(diǎn))的單向鏈表中,使末尾結(jié)點(diǎn)的指單向循環(huán)鏈∧左端結(jié) 右端結(jié) 空∧…結(jié)構(gòu):與單向鏈表相同(略 第二章線性表 操作:①在表左端插入結(jié)點(diǎn)Insert(xFirst(R),RLinsert(x,R) Linsert(elementtypex LIST&Rx celltype *p xp=newcelltypep→element=xif (R==NULL p→next=p R=p {p→next{p→next=R→nextR→next=p}}x…Rp②在表右端插入結(jié)點(diǎn)Insert(x,END(R),R);→Rinsert(x,R) Rinsert(elementtypex, LIST&R) Linsert(x,R R=R→next 第二章線性表 操作:③從表左端刪除結(jié)點(diǎn)Delete(FirstR),R);→Ldelete(R) Ldelete(LIST&R celltype *p if …error “空表…else p=R→nextR→next=p→next;if p==R)x xdelete p} 第二章線性表 11……Ra 第二章線性表 R R算法如下 voidRevers(LIST&R{positionp,q,s;q=R;p=R→next;R=R→next
while(p->next!=R{s=q;q=pp=p→next;q→next=s;}} 第二章線性表
coeflinkcoeflink系 指 下一項(xiàng)地結(jié)點(diǎn)類structpolynode coef exppolylink*linktypedefpolynode*polypointer 第二章線性表 例如 p(x)=3x14+2x8+ 82310∧82310∧算法Attch(c,e,d)建立一個新結(jié)點(diǎn),其系數(shù)coefc,指數(shù)exp=e;并把它鏈到d所指結(jié)點(diǎn)之后,返回該結(jié)點(diǎn)指針。polypointerAttch(intc,inte,polypointerd xx=new polynode;x→coef=c;x→exp=e;d→link=x;returnx;}
算法padd實(shí)現(xiàn)兩個多項(xiàng)a,b相加c(x)=a(x)+
第二章線性表 polypointerPadd(polypointera,polypointerb{polypointerp,q,d,c;intx;p=a→link; q=b→link;c=newpolynode d=cwhile((p!=NULL)&&(q!=NULL))switch(compare(p→exp,q→exp)){case‘=‘x=p→coef+q→coefif(x d=attch(x,p→exp,d)p=p→link;q=q→link;break;cased=Attch(p→coef,p→exp,d}
第二章線性表p=p→linkbreak;case‘<‘:d=Attch(q→coef,q→exp,d);q=q→link;break
2—while(p!=NULL d=Attch(p→coef,p→exp,d);p=p→link;}while(q!=NULL d=Attch(q→coef,q→exp,d)q=q→link}d→link=NULL;p=c;c=c→link;deletep;returnc
第二章線性表 棧棧(LastInFirstOut線性表。
an-an-棧棧示意棧棧的基本操①M(fèi)akeNull(S②Top(S③Pop(S④Push(x,S⑤Empty(S
第二章線性表 2—voidLineEdit({STACKcharcMakeNull(S);c=getchar();while(c!=‘\n’){
if(c==‘#’Pop(Selseif(c==‘@’MakeNull(S);Push(c,S);c=getchar();}逆序輸出棧中所有元素} 第二章線性表 類型定義enumBoolen{TRUE, structinttop; STACKS;??眨篠.top0棧滿:S.topmaxlength1
--210順序棧示意
第二章線性表 ①voidMakeNull( &S{S.top=0;②BooleanEmpty( S{if(S.top<1return}
returnFALSE③elementtypeTop( S ifEmpty(Sreturn}
return(S.elements[S.top]
第二章線性表 ④ Pop( &S{if(Empty(S)error??誗.top=S.top–1}⑤voidPush( x, &S{if(S.top==maxlength-1error棧滿{S.top=S.top+1;S.elements[S.top]=x;}}
第二章線性表 的,要考慮鏈表的哪一端實(shí)現(xiàn)元素的
∧structnode∧Elementtype node*typedefnode*
第二章線性表 ①voidMakeNull(STACK{S=newS-}②voidPush(Elementtypex,STACK{STACKstk;}
第二章線性表 ③voidPop(STACK{STACKstk;if(S->next{stk=S-deletestk;}}{if(S-return} 第二章線性表 ⑤booleanEmpty(STACK{if(S->next)return} STACK[maxlength
Maxlength-
2、棧的簡單應(yīng)用
第二章線性表 例1算術(shù)表達(dá)式中括號作用域 intCorrect(charext[],intn)/*數(shù)組ext用 表達(dá)式{STACKintj=1;while(表達(dá)式?jīng)]有結(jié)束時{ifexp[j]是左括號*左括號*/Push(ext[j],S)ifext[j]是右括號*右括號{x=Top(S);/*取棧首元素比較*/if(x與ext[j]匹配)Pop(S);elsereturn}j+}if(!Empty(S))return}elsereturn
例2表達(dá)式求表達(dá)式
第二章線性表 2—后綴表達(dá)式(逆波蘭式(a+b)*(a-
(a+b)*(a- 后綴表達(dá)式的特點(diǎn) 后綴表達(dá)式中不需要括弧定義計算順序,而由(操作符)的位置來確定運(yùn)算順序
第二章線性表 對中綴表達(dá)式從左至右依次掃描,由于操作數(shù)的順序保持不變,當(dāng)遇到“(”進(jìn)棧,當(dāng)遇到“)棧輸出直到“)”為止由后綴表達(dá)式計 第二章線性 2—例3、使用游標(biāo)形式使得三棧共設(shè)用一個類型為STATICLIST的一維數(shù)組A[m]空間建立三個棧.其中前三個單元的next存放三個棧頂?shù)闹杆膫€單元起共寫一算法
如果輸入數(shù)據(jù)為:100,30,68,90,120后結(jié)果應(yīng)如下: 5670043056700430 第二章線性表 structstruct{intdata;inttypedefstructnodevoidShare(Node{inti,top;{}//初始{{}else{}{}}3、棧與遞歸問
第二章線性表 一、遞歸采用遞歸方法來解決問題,必須符合以下三個條件1、可以把要解決的問題轉(zhuǎn)化為一個新問題,而這個新的問題的解決法仍與原來的解決方法相同,只是所處理的對象有規(guī)律地遞增或遞減2、可以應(yīng)用這個轉(zhuǎn)化過程使問題得到解決3、必定要有一個明確的結(jié)束遞歸的條件二、遞歸例:使用遞歸的方法求n!當(dāng)n>1時,求n!的問題可以轉(zhuǎn)化為n*(n-1比如
n*(n-1)!(n-1)*(n-2)!(n-2)*(n-3)!(n-3)*(n-4)!(n-5)! 5-5=0,得到值1,結(jié)束遞歸
第二章線性表
2—說明調(diào)返回↑t=5*fac(5-returnt=4*fac(4-return第二章線性表第二章線性表2—t=3*fac(3-returnt=2*fac(2-returnreturn 第二章線性表 2— intintmymax(intfrom,int{intmid,t1,t2;returna[from];{return(t1>t2)?t1:t2;}}intintmax(intn,int*{ifreturnarr[n-1];returnmax(n-}
第二章線性表 intfindmax(ints[],intl,int{int return returns[l]>s[r]?s[l]:s[r];x=findmax(s,l,m);returnx>y?x:} 第二章線性表 2—和棧相反,隊列是一種先進(jìn)先出(First InFirstOut,簡稱FIFO結(jié)構(gòu))的線性表。
隊隊隊
隊列示意
rear操作:MakeNull(Q)、Front(Q)、EnQueue(x,Q)、DeQueue(Q)、 第二章線性表 structcelltype{elementtypeelement;celltype*next;}
隊列的“型”:structQueuecelltype*frontcelltype*rear…∧…∧隊列的指針實(shí)現(xiàn)示意
第二章線性表 操作①voidMakeNull(Queue&Q{Q.front=newcelltype;Q.front→next=Null;Q.rear=Q.front;}②BooleanEmpty(QueueQ{if(Q.front==Q.rear)returnTrue;returnFalse}
③elementtypeFront(QueueQ{}
第二章線性表 ④voidEnQueue(elementtypex,Queue&Q Q.rear→next=newcelltypeQ.rear=Q.rear→next;Q.rear→element=x;Q.rear→next=NULL;}⑤ DeQueue( &Q{celltype*temp;if(Empty(Q)error空隊列else{temp=Q.front→nextQ.front→next=temp→next;deletetemp;if(Q.front→next==NULL)Q.rear=Q.front; } 第二章線性表 2—隊列的structQueueelementtypeelement[maxlength] front rearQ右圖:隊列Q狀態(tài)
下圖:隊列Q狀態(tài)Q
隨著不斷有元素出隊和進(jìn)個元素?zé)o法進(jìn)隊實(shí)際上, 第二章線性表 第二種方法是采用循環(huán)隊插入元素Q.rear=(Q.rear+1)%刪除元素Q.front=(Q.front+1)%
maxlength-0
(Q.rear+1)%maxlength==(Q.rear+1)%maxlength==
隊列
第二章線性表
45
J445032
32J4J4450321 第二章線性表 2—操作intaddone(inti{return((i+1)%maxlength)}①voidMakeNull(Queue{Q.front=0Q.rear=maxlength–
②booleanEmpty(QueueQ{Q.frontreturnTRUE;returnFALSE}}
第二章線性表 操作:③elementtypeFront(QueueQ if(Empty(Q)returnNULLreturn(Q.elements[Q.front]}④voidEnQueue(Elementtypex,Queue&Q{ifaddoneaddone(Q.rearQ.fronterror(“隊列滿”);elseQ.rear=addone(Q.rear);Q.elements[Q.rear]=x;}}⑤voidDeQueue Queue&Q) if(Empty(Q)error(“Q.front=addone(Q.front)}
第二章線性表 (ab)i的系數(shù)三角形(Pascal’striangle) 11
i2345 第二章線性 2—
從前一行的數(shù)據(jù)可以計算下一行的數(shù) 第二章線性 s=0t=1t=2 t=1t=0 s+t
t=3t=1 t=0t=1 第二章線性表 利用隊列打印二項(xiàng)展開式系數(shù)的程#include<stdio.h>#include"queue.h"{Queueq;隊列初始化inti,j,s=0,t,u;q.enQueue(1);q.enQueuefori1;in;i++逐行計{cout<<endl;forj1;ji+2j下一{intt=q.deQueueu=s+t;s=t;if(j!=i+2)cout<<s<<'}} 第二章線性 2—作業(yè):分時系統(tǒng)的模擬 ,具體情況如表1所示起 031221表1用戶請求統(tǒng)計表 第二章線性表 隊 隊尾圖2用戶對
這種調(diào)度原則可歸納為以下三點(diǎn)1、當(dāng)一用戶請求CPU時間,它就進(jìn)入請求使用CPU的隊列 第二章線性表 005利用“先進(jìn)先出”調(diào)度原則設(shè)計一個模擬簡單的分時系統(tǒng)的算法 等 延圖3用戶時間分配情
第二章線性表 串(String串的基本形式可表示成:Sa1a2a3······an其中:charai0inn0n0為空串n串的長C2操作:stringMakeNull(BooleanIsNull(S);voidIn(S,a); Len(S)voidConcat(S1,S2)
str1[10]*str2stringSubstr(S,m,n);BooleanIndex(S,S1)
第二章線性 例1、將串TSiINSERT(STivoidInsert(STRING&S,STRINGT,inti{STRINGt1,t2if((i0||iLen(Serror‘指定位置不對;if(IsNull(S))S=T;if(IsNull(T) t1=Substr(S,1,i)t2=Substr(S,i+1,Len(S));S=Concat(t1,Concat(T,t2));}}
第二章線性表 例2、從串S中將子串T刪除Delete(S,T Delete(STRING&S,STRINGT STRINGt1 t2int m,nm=Index(S,T);if (0)error‘串S中不包含子串T’else n=Len(T)t1=Substr(S,1,m-1)t2=Substr(S,m+n,Len(S));S=Concat(t1,t2);}} 第二章線性表 2—2.5.2串的實(shí)現(xiàn)1、串的順 str[10
串的順操作2、串的鏈 ---定長結(jié) structnode{chardata;node*link}typedefnodeSTRING1str1
第二章線性表structnode{chardata[4];node*link;}typedefnode*STRING2;STRING2str2;
2— ‘C’ ‘C’假設(shè)地址量(link)占用2
第二章線性表 intIndex(STRING1S,S1{
structnode*p,*q,*i;intt;if((S1!=NULL)&&(S!=NULL) t=1;i=S;q=S1doif(p→data==q→data q=q→linkif(q==NULL)return(t)若S1是S的子串則返
p=p→linkS1首字符在S中的位置
t=t+1;i=i→link否則,返回
p=i;q=S1}}while(p!=NULL)}return0} 第二章線性表 作業(yè):Substr(S,m,n):求串S從第m個字符開始長度為n個字符的子串插入和刪除時“無用”字符的處理主 模式串 ,指針I(yè)要回朔45次
第二章線性表
第二章線性表 第二章線性表 每一趟匹配過程中出現(xiàn)字符比較不等時,不需要回朔I指針,而是利用已經(jīng)得到的“部分匹配”結(jié)果將模式向右“滑動”盡可能遠(yuǎn)的一段距離后,繼續(xù)進(jìn)行比假設(shè)主串為‘s1s2sn,模式串為‘p1p2...pm’,當(dāng)sipjipk,顯然k<j,如下圖:…si-jsi-j+1si-j+2…si-ksi-k+1si-k+2…si-2si-
p2…..Pk-2pk-說明:pj-k+1pj-k+2…pj-1=p1p2…pk-2pk-Substr(P,1k-1)=Substr(P,j-k+1,k-1) 第二章線性表 2—next函數(shù)的定 當(dāng)jnext[j |1kjp
''
1 1
k jk
j若模式串P為’abaabc’,由定義可得next函數(shù)j123456模式abaabc011223 第二章線性表 2—主 S=‘a(chǎn)cabaabaabcacaab模式串P=’abaab 主 acabaabaabcacaab a↑j=2 主 acabaabaabcacaab ↑j=1↓i=3 主
cabaabaabcacaab abaab↑j=1 ↑j=6↓i=8→ 主
acabaabaabcac(ab)aab
ab↑↑
第二章線性表 j123456789模式aaabcaaba j123456789模式abcabcacb0 4
第二章線性 已知next[1]0,假設(shè)next[j]ktjtk,則有next[j+1]=k+1=next[j]+1;若next[j]ktjtk,則需往前回溯,檢查tjt?。這實(shí)際。k’=next[k]且tjtk’,則next[j]=next[k]+1,若tjtk’則繼續(xù)往前回溯,直到存在k’’使tj=tk’’或k’’=0j12345678模式babbabab 第二章線性表 121234501234
p1與s4,p1與s4+1即與s5比較。有多余的比較操作,可以改進(jìn)為:若next[j]=k而pj=pk則next[j]1212340000
第二章線性表 下面給出求next函數(shù)的偽voidget_next(SStringT,int{inti=1;next[1]=0;int j=0;whilei<T[0])//T[0]中存放數(shù)組長{if({++i; next[i]=j;}elsej=next[j];}
第二章線性表 算 char*t,int{//求串s的第pos個字符開始找首次與t串相等的inti=pos;int j=1;{if( ++i; elsej=next[j];//下一個匹配位置if(j>t[0])returnit[0];//成功返回位置elsereturn1;}
第二章線性表 數(shù)組()數(shù)組是由下標(biāo)(index)和值(value)組成的序(index,value)的集合也可以定義為是由相同類型的數(shù)據(jù)元素組成有限序列 所有數(shù)組都是一個一維向量數(shù)組1:(a1,a2,a3, ai, an)數(shù)組2:(a11, a1n,a21, a2n,, ij, am1, amn)1≤i≤m,1≤j≤n數(shù)組3:(a111, a11n,a121, a12n, aijk, amn1, amnp)1≤i≤m,1≤j≤n,1≤k≤p
第二章線性表 n維數(shù)組中含有∏bi個數(shù)據(jù)元素,每個元素都受著 n個關(guān)系的約束。在每個關(guān)系中,元素aj1j2···jn(0≤ji ≤bi-2)都有一個直接后繼元素。n維數(shù)組同樣如此。操作:Create();建立一個空數(shù)組Retrieve(arra
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 精密機(jī)械制造中心項(xiàng)目可行性研究報告模板-立項(xiàng)拿地
- 貴州警察學(xué)院《法語會話(二)》2023-2024學(xué)年第一學(xué)期期末試卷
- 貴州健康職業(yè)學(xué)院《中國現(xiàn)當(dāng)代文學(xué)思潮研究》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年基金從業(yè)資格證考試題庫含答案【能力提升】
- 2024年國考言語理解與表達(dá)必考題型完整
- 初級會計職稱考試初級會計實(shí)務(wù)第一章資產(chǎn)習(xí)題及答案解析
- 二建市政工程實(shí)務(wù)-二建《市政公用工程管理與實(shí)務(wù)》押題密卷2357
- 2018年初級社會工作考試復(fù)習(xí)題及答案
- 基于語文學(xué)科立場的跨學(xué)科學(xué)習(xí)及實(shí)踐路徑:以六上第七單元為例
- 職教服務(wù)經(jīng)濟(jì)發(fā)展的理論框架
- 國家戰(zhàn)略思維課件
- 施工單位自評報告
- 招商租金政策方案
- 銀行金庫集中可行性報告
- 鍍膜員工述職報告
- 工程結(jié)算中的風(fēng)險識別與防控
- 安全教育培訓(xùn)課件:意識與態(tài)度
- 《礦區(qū)水文地質(zhì)工程地質(zhì)勘探規(guī)范》水文地質(zhì)單元及侵蝕基準(zhǔn)面劃分的探討
- PAC人流術(shù)后關(guān)愛與健康教育
- 眼瞼衰老機(jī)制與干預(yù)
- 滲透檢測-滲透檢測方法(無損檢測課件)
評論
0/150
提交評論