主题:用表删除相同的数
gaolubing
[专家分:20] 发布于 2007-03-30 16:38:00
用 表删除相同的数
如:1,1,2,2,4,5,3,3,7,8
得到的结果是1,2,4,5,3,7,8
回复列表 (共2个回复)
沙发
Rick0ne [专家分:1490] 发布于 2007-04-03 10:47:00
读一个数,查表看是否存在,如果存在丢弃,否则插入到表,循环进行直到全部数读完时停止,输出表中内容.表的基本操作:查寻,插入;翻书自己动手
板凳
勇敢懦夫 [专家分:0] 发布于 2007-04-15 12:24:00
#include<iostream.h>
struct Node
{
int data;
struct Node * next;
} ;
void output(Node* h)
{ cout<<"输出数据"<<endl;
Node* s=h;
// s=s->next;
while(s->next!=NULL)
{
cout<<s->next->data<<" ";
s=s->next;
}
cout<<"输出数据"<<endl;
}
void comparedelet(Node* h)
{
Node* p=h;
p=p->next;
while(p->next!=NULL)
{
//p=p->next;
Node * q=p;
int n=p->data;
while(q->next!=NULL)
{
while(n==q->next->data)
{Node * s=q->next;
if(s->next!=NULL)
q->next=s->next;
else
q->next=NULL;
}
q=q->next;
}
p=p->next;
}
// p=p->next;
cout<<"输出数据2"<<endl;
}
Node* createlist()
{
int m;
char s;
cout<<"输入I表示进行插入接点"<<endl;
cout<<"输入E表示进行停止插入"<<endl;
Node* head=new Node ;
head->next=NULL;
Node* q=head;
cout<<"请判断是否插入节点"<<endl;
cin>>s;
while(s=='i')
{
Node* p=new Node ;
cout<<"请输入数据DATA"<<endl;
cin>>m;
p->data=m;
p->next=NULL;
q->next=p;
q=p;
//delete p;
cout<<"请再次决定是否继续插入"<<endl;
cin>>s;
}
while(s=='e')
{
q->next=NULL;
return head;
}
}
void main()
{
Node* head=NULL;
head=createlist();
//
output(head);
comparedelet(head);
output(head);
}
我来回复