回 帖 发 新 帖 刷新版面

主题:用表删除相同的数

用 表删除相同的数
如:1,1,2,2,4,5,3,3,7,8
得到的结果是1,2,4,5,3,7,8

回复列表 (共2个回复)

沙发

读一个数,查表看是否存在,如果存在丢弃,否则插入到表,循环进行直到全部数读完时停止,输出表中内容.表的基本操作:查寻,插入;翻书自己动手

板凳


                   #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);
 
         }    

我来回复

您尚未登录,请登录后再回复。点此登录或注册