#include<stdio.h>
typedef struct data{
int x;
struct data *next;
}DATA
DATA *current=NULL,*current2=NULL;
void delete(DATA*);
DATA d,d1,d2,d3,d4;
int count=0;
current=d;
current2=d;
d.next=&d1;
d1.next=&d2;
d2.next=&d3;
d3.next=&d4;
d4.next=NULL;
d1.x=1;
d2.x=2;
d3.x=3;
d4.x=4;
int main(){
printf("%d %d %d %d\n",d.next->data,d.next->next->data,d.next->next->next->data, d.next->next->next->next->data);
current=d1;
current2=d1;
while(1){
while(1){
if(current.x==current2.x)count++;
if(current2.next==NULL)break;
current2=current2.next;
}
current2=d1;
if(count>=2){
count=0;
while(1){
if(current.x==current2.x){
count++;
if(count==1){
delete(current2.next);
count=0;
}
if(current2.next==NULL)break;
current2=current2.next;
}
}
current=current.next;
}
else current=current.next;
}
current=d;
while(1){
printf("%d ",curent.next->x);
if(current.next==NULL)break;
current=current.next;
}
printf("\n");
return 0;
}
void delete(DATA *current2){
DATA prev=d;
while(1){
if(prev.next->next==current2.next){
prev.next->next=current2.next;
break;
}
if(prev.next->next==NULL)break;
prev=prev.next;
}
}
連結リストにおける重複要素の削除方法について
-
- 記事: 5
- 登録日時: 2年前
連結リストにおける重複要素の削除方法について
ソートされていない連結リストから重複する要素を削除するコードを自分なりに書いてみましたがコンパイルを突破できません。ミスの指摘をお願いしたいです。
Re: 連結リストにおける重複要素の削除方法について
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: 連結リストにおける重複要素の削除方法について
DATA型の値をDATA *型へ代入しようとしていますが、正しいですか?
構造体にdataっていうメンバーはありませんが、いいんですか?
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。