下列算法將單鏈表中值重復(fù)的結(jié)點(diǎn)刪除,使所得的結(jié)果表中各結(jié)點(diǎn)值均不相同,試完成該算法。
void DelSameNode(LinkList L)
//L是帶頭結(jié)點(diǎn)的單鏈表,刪除其中的值重復(fù)的結(jié)點(diǎn)//
{ListNode * p,*q,*r;
p=L->next; //p初始指向開始結(jié)點(diǎn)//
while(p){ //處理當(dāng)前結(jié)點(diǎn)p//
q=p;
r=q->next;
do { //刪除與結(jié)點(diǎn)*p的值相同的結(jié)點(diǎn)//
while(r&&r->data!=p->data){
q=r;
r=r->next;
}
if(r){ //結(jié)點(diǎn)*r的值與*p的值相同,刪除*r//
q->next=r->next;
free(r);
r=();
}
}while( r );
p=p->next;
}
}
您可能感興趣的試卷
你可能感興趣的試題
最新試題
單鏈表類型定義如下:用不帶頭結(jié)點(diǎn)的單鏈表存儲(chǔ)待排數(shù)據(jù),鏈表頭指針為head。下列直接選擇排序算法對(duì)鏈表按升序進(jìn)行排序,請(qǐng)?zhí)顚戇m當(dāng)內(nèi)容使算法完整。
一個(gè)抽象類型包括數(shù)據(jù)對(duì)象、()和一組處理數(shù)據(jù)的操作。
對(duì)給定的數(shù)據(jù)集{84,47,25,15,21}排序,進(jìn)行2趟簡(jiǎn)單選擇排序的結(jié)果是()
只要無(wú)向圖中有權(quán)重相同的邊,其最小生成樹就不可能唯一。
頭指針為L(zhǎng)的帶頭結(jié)點(diǎn)的雙循環(huán)鏈表,結(jié)點(diǎn)的前趨指針域?yàn)閜rior,后繼指針域?yàn)閚ext,判斷該鏈表為空的條件是()。
閱讀下列算法,并回答問(wèn)題:設(shè)棧S=(1,2,3,4,5,6,7),其中7為棧頂元素。調(diào)用函數(shù)f30(S)后,(1)第一個(gè)循環(huán)結(jié)束后,棧T和隊(duì)列Q中的內(nèi)容各是什么?(2)第三個(gè)循環(huán)語(yǔ)句結(jié)束后,棧S中的內(nèi)容是什么?
采用鄰接矩陣存儲(chǔ)n個(gè)頂點(diǎn)e條邊的無(wú)向圖,其鄰接矩陣的大小為()。
一棵二叉樹的先序序列是:CEDBA,中序序列是:DEBAC ,則該二叉樹的后序序列是()
某順序表的第一個(gè)元素的存儲(chǔ)地址是500,每個(gè)元素占4個(gè)單元,則第8個(gè)元素的起始地址是()
若無(wú)向圖中任意兩個(gè)不同的頂點(diǎn)間都有路徑,則稱該圖為()。