回 帖 发 新 帖 刷新版面

主题:有没有人能帮我该出来

//  请大家帮帮,我刚开始学,什么都不太懂,希望大家给我该具体点
#include<iostream.h>
typedef int elemtype;
class node
{
public:
    elemtype data;
    node *next;
    void initset(node *head)
    {
        head=NULL;
    }
    void insert(node *head,elemtype i)  //插入   
    {
        node *p=new node;
        if(p!=NULL)
        {
            p->data=i;p->next=head;head=p;
        }
    }   
    void dele(node *head,elemtype i)        //删除
    {
        node *p=head,*q=NULL;
        while(p)
        {
            if(p->data=i)break;
            else
            q=p;p=p->next;
        }
        q->next=p->next;
        delete p;
    }
    bool find(node *head,elemtype i)         //查找
    {
        node *p=head;
        while(p)
        {
            if(p->data=i)
                return true;
            else
            p=p->next;
        }
    }
    void node::uion(node *head1,node *head2)       //交集放在head3里
    {
        node *head3;
        elemtype i;
        node *p=head2;
        while(p)
        {
            i=p->data;
            if(find(head1,i))
            insert(head3,i);
            p=p->next;
        }
    }

};

    void main()
    {
        node *head=NULL;
        node *Head1;
        node *Head2;
        node *Head3;
        node *p=head;
        int x;
        cout<<"输入链表:"<<endl;
        cin>>x;
        while(x!=-1)
        {
            insert(Head2,x);
            cin>>x;
        }
        while(x!=-1)
        {
            insert(Head2,x);
            cin>>x;
        }

         Head3->uion(Head1,Head2);
         while(p)
         {
             cout<<p->data<<" ";
             p=p->next;
         }
    }
    
    
    
    
    //运行之后显示C:\Documents and Settings\Administrator\桌面\tt.cpp(71) : error C2065: 'insert' : undeclared identifier


这是关于一个求交集的问题

回复列表 (共3个回复)

沙发

//  请大家帮帮,我刚开始学,什么都不太懂,希望大家给我该具体点

#include<iostream>
using namespace std;

typedef int elemtype;

class node
{
public:

    elemtype data;
    node *next;

    friend void initset(node *&head)
    {
        head=new node;
        head->next=NULL;
    }
    friend void insert(node *&head,elemtype i)  //插入   
    {
        node *p=new node;
        p->data=i;
        p->next=NULL;
        node *q;
        q=head;
        while(q->next)
            q=q->next;
       q->next=p;
    }   
    friend void dele(node *&head,elemtype i)        //删除
    {
        node *p=head,*q;
        while(p)
        {
            if(p->data=i)
                break;
            else
            {
                q=p;
                p=p->next;
            }
        }
        q->next=p->next;
        delete p;
    }
    friend bool find(node *head,elemtype i)         //查找
    {
        int flag;
        node *p=head->next;
        while(p)
        {
            flag=0;
            if(p->data=i)
            {
                flag=1;
                break;
            }
            else
                p=p->next;
        }
        if(flag)
            return true;
        else
            return false;
    }
    friend void uion(node *head1,node *head2,node *&head3)       //交集放在head3里
    {
        elemtype i;
        node *p=head2->next;
        bool flag=false;
        while(p)
        {
            i=p->data;
            if(find(head1,i))
            {
                insert(head3,i);
                flag=true;
            }
            p=p->next;
        }
        if(!flag)
            cout<<"交集为空集!"<<endl;
    }
    friend void Dispaly(node *head)
    {
        node *p;
        p=head->next;
        while(p)
        {
            cout<<p->data<<" ";
            p=p->next;
        }
        cout<<endl;
    }
};

int main()
{
     node *Head1=NULL;
        initset(Head1);
     node *Head2=NULL;
     initset(Head2);
     node *Head3=NULL;
     initset(Head3);
     int x;
     cout<<"输入链表1(-1 to end): "<<endl;
     cin>>x;
     while(x!=-1)
     {
         insert(Head1,x);
         cin>>x;
     }
     cout<<"输出链表1: ";
     Dispaly(Head1);
     cout<<"输入链表2(-1 to end): "<<endl;
     cin>>x;
     while(x!=-1)
     {
          insert(Head2,x);
          cin>>x;
     }
     cout<<"输出链表2: ";
     Dispaly(Head2);
     cout<<"将表1和表2合成表3为: ";
     uion(Head1,Head2,Head3);
     Dispaly(Head3);
     return 0;
}

板凳

因为你将insert等所有方法都放在一个类里面,也就是那个名为node的class里面,对与类里面的方法,访问方式是: 该类的对象名.方法名(参数);
所以这个地方,如果你要访问该类中的方法的话,一般操作方式是:初始化一个对象,然后通过对象去访问该方法——对象名.方法名(参数);

3 楼

成员函数insert的引用必须通过该类的一个对象才行

我来回复

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