锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
涓涓簨鍔¤鍒板彟涓涓簨鍔★紝灝氭湭鎻愪氦鐨勪慨鏀癸紝灝辨槸鑴忚銆傝繖閲屾墍璋撶殑淇敼錛岄櫎浜哢pdate鎿嶄綔,涓嶈蹇樹簡,榪樺寘鎷?br /> Insert鍜孌elete鎿嶄綔銆?/p>
鑴忚鐨勫悗鏋滐細濡傛灉鍚庝竴涓簨鍔″洖婊氾紝閭d箞瀹冩墍鍋氱殑淇敼錛岀粺緇熼兘浼氳鎾ら攢銆傚墠涓涓簨鍔¤鍒扮殑鏁版嵁錛屽氨鏄瀮鍦炬暟鎹?/p>
涓句釜渚嬪瓙錛氶璁㈡埧闂淬?br />
鏈変竴寮燫eservation琛紝寰琛ㄤ腑鎻掑叆涓鏉¤褰曪紝鏉ヨ璐竴涓埧闂淬?/p>
浜嬪姟1錛氬湪Reservation琛ㄤ腑鎻掑叆涓鏉¤褰曪紝鐢ㄤ簬棰勮99鍙鋒埧闂淬?/p>
浜嬪姟2錛氭煡璇紝灝氭湭棰勫畾鐨勬埧闂村垪琛紝鍥犱負99鍙鋒埧闂達紝宸茬粡琚簨鍔?棰勮銆傛墍浠ヤ笉鍦ㄥ垪琛ㄤ腑銆?/p>
浜嬪姟1錛氫俊鐢ㄥ崱浠樻銆傜敱浜庝粯嬈懼け璐ワ紝瀵艱嚧鏁翠釜浜嬪姟鍥炴粴銆?br /> 鎵浠ユ彃鍏ュ埌Reservation 琛ㄤ腑鐨勮褰曞茍涓嶇疆涓烘寔涔咃紙鍗沖畠灝嗚鍒犻櫎錛夈?/p>
鐜板湪99鍙鋒埧闂村垯涓哄彲鐢ㄣ?br /> 鎵浠ワ紝浜嬪姟2鎵鐢ㄧ殑鏄竴涓棤鏁堢殑鎴塊棿鍒楄〃錛屽洜涓?9鍙鋒埧闂達紝宸茬粡鍙敤銆傚鏋滃畠鏄渶鍚庝竴涓病鏈夎棰勫畾鐨勬埧闂達紝閭d箞榪欏皢鏄竴涓弗閲嶇殑澶辮銆?/p>
娉細鑴忚鐨勫悗鏋滃緢涓ラ噸銆?/p>
2錛屼笉鍙噸澶嶈銆?/p>
鍦ㄥ悓涓涓簨鍔′腑錛屽啀嬈¤鍙栨暟鎹椂銆愬氨鏄綘鐨剆elect鎿嶄綔銆戯紝鎵璇誨彇鐨勬暟鎹紝鍜岀1嬈¤鍙栫殑鏁版嵁錛屼笉涓鏍蜂簡銆傚氨鏄笉鍙噸澶嶈銆?/p>
涓句釜渚嬪瓙錛?br /> 浜嬪姟1錛氭煡璇㈡湁鍙屼漢搴婃埧闂淬?9鍙鋒埧闂達紝鏈夊弻浜哄簥銆?/p>
浜嬪姟2錛氬皢99鍙鋒埧闂達紝鏀規垚鍗曚漢搴婃埧闂淬?/p>
浜嬪姟1錛氬啀嬈℃墽琛屾煡璇紝璇鋒眰鎵鏈夊弻浜哄簥鎴塊棿鍒楄〃錛?9鍙鋒埧闂翠笉鍐嶅垪琛ㄤ腑浜嗐備篃灝辨槸璇達紝
浜嬪姟1錛屽彲浠ョ湅鍒板叾浠栦簨鍔℃墍鍋氱殑淇敼銆?/p>
鍦ㄤ笉鍙噸澶嶈錛岄噷闈紝鍙互鐪嬪埌鍏朵粬浜嬪姟鎵鍋氱殑淇敼錛岃屽鑷?嬈$殑鏌ヨ緇撴灉涓嶅啀涓鏍蜂簡銆?br />
榪欓噷鐨勪慨鏀癸紝鏄彁浜よ繃鐨勩備篃鍙互鏄病鏈夋彁浜ょ殑錛岃繖縐嶆儏鍐靛悓鏃朵篃鏄剰璇匯?/p>
濡傛灉錛屾暟鎹簱緋葷粺鐨勯殧紱葷駭鍒傚厑璁革紝涓嶅彲閲嶅璇匯傞偅涔堜綘鍚姩涓涓簨鍔★紝騫跺仛涓涓猻elect鏌ヨ鎿嶄綔銆?br />
鏌ヨ鍒扮殑鏁版嵁錛屽氨鏈夊彲鑳斤紝鍜屼綘絎?嬈★紝3嬈?..n嬈★紝鏌ヨ鍒扮殑鏁版嵁涓嶄竴鏍楓備竴鑸儏鍐典笅錛屼綘鍙細鍋氫竴嬈★紝select
鏌ヨ錛屽茍浠ヨ繖涓嬈$殑鏌ヨ鏁版嵁錛屼綔涓哄悗緇綆楃殑鍩虹銆傚洜涓哄厑璁稿嚭鐜幫紝涓嶅彲閲嶅璇匯傞偅涔堜換浣?br />
鏃跺欙紝鏌ヨ鍒扮殑鏁版嵁錛岄兘鏈夊彲鑳借鍏朵粬浜嬪姟鏇存柊錛屾煡璇㈢殑緇撴灉灝嗘槸涓嶇‘瀹氱殑銆?/p>
娉細濡傛灉鍏佽錛屼笉鍙噸澶嶈錛屼綘鐨勬煡璇㈢粨鏋滐紝灝嗘槸涓嶇‘瀹氱殑銆備竴涓笉紜畾鐨勭粨鏋滐紝浣犺兘瀹瑰繊鍚楋紵
3錛屽夠璇?/p>
浜嬪姟1璇誨彇鎸囧畾鐨剋here瀛愬彞鎵榪斿洖鐨勪竴浜涜銆傜劧鍚庯紝浜嬪姟2鎻掑叆涓涓柊琛岋紝榪欎釜鏂拌涔熸弧瓚充簨鍔?浣跨敤鐨勬煡璇?br />
where瀛愬彞銆傜劧鍚庝簨鍔?鍐嶆浣跨敤鐩稿悓鐨勬煡璇㈣鍙栬錛屼絾鏄幇鍦ㄥ畠鐪嬪埌浜嗕簨鍔?鍒氭彃鍏ョ殑琛屻傝繖涓琚О涓哄夠璞★紝
鍥犱負瀵逛簨鍔?鏉ヨ錛岃繖涓琛岀殑鍑虹幇鏄笉鍙濊鐨勩?/p>
涓句釜渚嬪瓙錛?br /> 浜嬪姟1錛氳姹傛病鏈夐瀹氱殑錛屽弻浜哄簥鎴塊棿鍒楄〃銆?br /> 浜嬪姟2錛氬悜Reservation琛ㄤ腑鎻掑叆涓涓柊綰綍錛屼互棰勮99鍙鋒埧闂達紝騫舵彁浜ゃ?br /> 浜嬪姟1錛氬啀嬈¤姹傛湁鍙屼漢搴婄殑鏈瀹氱殑鎴塊棿鍒楄〃錛?9鍙鋒埧闂達紝涓嶅啀浣嶄簬鍒楄〃涓?/p>
娉細騫昏錛岄拡瀵圭殑鏄紝Insert鎿嶄綔銆傚鏋滀簨鍔?錛屾彃鍏ョ殑璁板綍錛屾病鏈夋彁浜ゃ傞偅涔堝悓鏃朵篃鏄剰璇匯?/p>
綰挎ц〃鐨勯潤鎬佸崟閾捐〃瀛樺偍緇撴瀯 :
#define MAXSIZE 100;
typedef struct{
聽 ElemType data;
聽 int cur;
}component,SLinkList[MAXSIZE];
鍒嗘瀽 :
榪欑鎻忚堪鏂規硶渚夸簬鍦ㄤ笉璁?/span> 鈥?/font> 鎸囬拡 鈥?/font> 綾誨瀷鐨勯珮綰х▼搴忚璁¤璦涓?/span> , 浣跨敤鐨勯摼琛ㄧ粨鏋?/span> . 鏁扮粍鐨勯浂鍒嗛噺鍙湅鎴愬ご鑺傜偣 . 榪欑緇撴瀯浠嶇劧闇瑕侀鍏堝垎閰嶄竴涓緝澶х殑絀洪棿 . 浣嗗湪鎻掑叆鍜屽垹闄ょ殑鏃跺?/span> , 涓嶉渶瑕佺Щ鍔ㄥ厓绱?/span> . 浠呴渶瑕佷慨鏀規寚閽?/span> . 鎵浠ヤ粛鐒跺叿鏈夐摼寮忓瓨鍌ㄧ粨鏋勭殑涓昏浼樼偣 .
(1) 聽聽 鍦ㄩ潤鎬佸崟閾捐〃涓?/span> , 鏌ユ壘絎竴涓間負 e 鐨勫厓绱?/span> .
int LocateElem_L(SLinkList S, ElemType e)
{
聽聽 i = S[0].cur;
聽聽 while(i && S[i].data != e) i=S[i].cur;
聽聽 return i;
}
鍒嗘瀽
:
濡傛灉鎵句笉鍒扮浉搴旂殑鍏冪礌
,
榪斿洖鍊間負
0.
(2)
聽聽聽聽
灝嗕竴緇存暟緇?/span>
space
涓殑鍚勪釜鍒嗛噺
,
閾炬垚涓涓鐢ㄧ殑閾捐〃
.
space[0].cur
涓哄ご鎸囬拡
.
void InitSpace(SLinkList &space){
聽聽 for(i =0;i<MAXSIZE-1;++i)
聽聽聽聽聽 space[i].cur = i+1;
聽聽 space[MAXSIZE-1].cur =0;
}
(3) 聽聽 濡傛灉澶囩敤絀洪棿鐨勯摼琛ㄩ潪絀?/span> , 鍒欒繑鍥炲垎閰嶇殑鑺傜偣涓嬫爣 ,
鍚﹀垯 , 榪斿洖 0;
int Malloc_SL(SLinkList &space){
聽聽 i=space[0].cur;
聽聽 if(space[0].cur)
聽聽聽聽聽 space[0].cur =space[i].cur;
聽聽 return i;
}
(4) 灝嗕笅鏍囦負 k 鐨勭┖闂茶妭鐐瑰洖鏀跺埌澶囩敤閾捐〃 .
void Free_SL(SLinkList &space,int k)
{
space[k].cur =space[0].cur;
space[0].cur = k;
}
(4)
聽聽
璁$畻闆嗗悎榪愮畻
(A-B
)
鈭?/span>
(B-A)
鍋囪鐢辯粓绔緭鍏ラ泦鍚堝厓绱?/span>
,
鍏堝緩绔嬭〃紺洪泦鍚?/span>
A
鐨勯潤鎬侀摼琛?/span>
S,
鐒跺悗鍦ㄨ緭鍏ラ泦鍚?/span>
B
鐨勫厓绱犵殑鍚屾椂鏌ユ壘
S
琛?/span>
,
濡傛灉瀛樺湪鐩稿悓鐨勫厓绱?/span>
,
鍒欎粠
S
琛ㄤ腑鍒犻櫎
,
鍚﹀垯灝嗗叾鎻掑叆鍒?/span>
S
琛ㄤ腑
.
鍏蜂綋浠g爜濡備笅
:
void difference(SLinkList &space , int &s)
{
聽聽聽聽聽
InitSpace_SL(space);
聽聽聽聽聽 s = Malloc_SL(space);
聽聽聽聽聽 r=s;
聽聽聽聽聽 scanf(m,n);
聽聽聽聽聽
for(j=1;j<=m;++j)
{聽聽聽聽 i =Malloc_SL(space);
聽聽聽聽聽聽聽聽聽聽
scanf(space[i].data);
聽聽聽聽聽聽聽聽聽聽 space[r].cur =i;
聽聽聽聽聽聽聽聽聽聽 r=i;
聽聽聽聽聽 }聽 space[r].cur=0;
for
(j=1;j<=n;++j){
聽聽聽 scanf(b);
聽聽聽 p=s;k=space[s].cur;
聽聽聽
while(k!=space[r].cur && space[k].data !=b)
聽聽聽 { p=k;k=space[k].cur;}
if
(k==space[r].cur)
{
聽聽聽
聽聽 i = Malloc_SL(space);
聽聽聽
聽聽 space[i].data = b;
聽聽聽
聽聽 space[i].cur = space[r].cur;
聽聽聽
聽聽 space[r].cur = i;
聽聽聽
聽聽 r=i;
聽聽聽 }
聽聽聽
else{
聽聽聽聽聽 space[p].cur =space[k].cur;
聽聽聽聽聽
Free_SL(space,k);
聽聽聽聽聽 if(r==k)
聽聽聽聽聽 r=p;
聽聽聽 }
}
}
閾懼紡瀛樺偍琛ㄧず :
typedef struct LNode{
聽 ElemType 聽 data;
聽 Struct LNode *next;
}LNode,*LinkList;
鍩烘湰鎿嶄綔鍦ㄩ摼琛ㄤ笂鐨勫疄鐜?/span> :
(1) 聽聽 鍗曢摼琛ㄧ殑鍙栧厓绱犵畻娉曪紙緇忓吀錛?/span>
Status GetElem_L(LinkList L, int i,ElemType &e)
{
p=L->next; j=1;
while(p && j<i)
{
聽聽聽聽聽 p=p->next;++j;
}
if(!p || j>i) return ERROR;
e=p->data;
return OK;
}
綆楁硶鍒嗘瀽
:
鍩烘湰鎿嶄綔鏄?/span>
:
姣旇緝
j
鍜?/span>
I,
騫舵妸鎸囬拡鍚庣Щ
,
寰幆浣撴墽琛岀殑嬈℃暟
,
涓庤鏌ュ厓绱犵殑浣嶇疆鏈夊叧
.
鍋囪琛ㄩ暱涓?/span>
n,
濡傛灉
1<=i<=n,
閭d箞寰幆浣撲腑璇彞鐨勬墽琛屾鏁頒負
i-1.
鍚﹀垯嬈℃暟涓?/span>
n
鎵浠ユ椂闂村鏉傚害涓?/span>
O(n).
Status ListInsert_L(LinkList &L, int i,ElemType e)
{
聽聽 p=L;j=0;
聽聽 while(p&&j<i-1)
聽聽聽聽聽 { p=p->next;++j}
聽聽 if(!p || j>i-1)
聽聽聽聽聽 return ERROR;
聽聽 s = (LinkList)malloc(sizeof(LNode));
聽聽 s->data = e;
聽聽 s->next = p->next;
聽聽 p->next =s;
聽聽 return OK;
}
(3)
聽聽
鍒犻櫎鍏冪礌綆楁硶
Status ListDelete_L(LinkList &L, int i,ElemType &e)
{
聽聽 p=L;j=0;
while(p &&j<i-1)
聽聽 {p=p->next;++j}
if(!p ||j>i-1)
聽聽聽聽聽 return聽 ERROR;
聽聽
q=p->next;
聽聽 p->next =q->next;
聽聽 e =q->data;
聽聽 free(q);
聽聽 return OK;
}
綆楁硶鍒嗘瀽
:
鎻掑叆鍜屽垹闄ょ畻娉?/span>
,
閮借鍏堟壘鍒扮
i-1
涓妭鐐?/span>
,
鎵浠ユ椂闂村鏉傚害涓?/span>
O(n);
void CreateList_L(LinkList &L,int n){
聽L =(LinkList)malloc(sizeof(LNode));
聽L->next = null;
聽 for(i = n;i>0;--i){
聽
聽 p =(LinkList)malloc(sizeof(LNode));
聽 scanf(&p->data);
聽 p->next = L->next;
聽 L->next =p;
聽 }
}
綆楁硶鍒嗘瀽 :
鎸夌収閫嗗簭寰幆杈撳叆 n 涓暟鎹厓绱犵殑鍊?/span> , 寤虹珛鏂拌妭鐐?/span> . 騫舵彃鍏?/span> . 鍥犳綆楁硶鐨勬椂闂村鏉傚害涓?/span> O(n).