标题:数据结构类的封装问题,急!!!!
只看楼主
youluqi98
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-3-26
结帖率:0
已结贴  问题点数:20 回复次数:3 
数据结构类的封装问题,急!!!!
#include<string.h>
#include<iostream>
using namespace std
typedef struct node
{
    int date;
    struct node *next;
}node;
typedef struct node *link;
class hsllist
{
public:
    hsllist();
    int length();
    bool get_element_hsllist(int i,int &x)const;
    node* locate_hsllist(int x);
    bool insert_hsllist(const int i,const int x);
    bool delete_element_hsllist(const int i);
    void create_hsllist();
    void disp_check_hsllist();
    void orderly_inserted_hsllist(int x);//递增有序插入
private:
    node* head;
}
//初始化链表
hsllist::hsllist()
{
    head=new node;
    head->next=NULL;
}
//求链表长度
int hsllist::length()
{
    int len=0;
    node* p=head->next;
    while(p!=NULL)
    {
        len++;
        p=p->next;
    }
    return len;
}
//按照序号获取元素
bool hsllist::get_element_hsllist(int i,int &x)
{
    int j=1;
    node* p=head->next;
    while(p!=NULL && j!=i)
    {
        j++;
        p=p->next;
    }
    if(p==NULL)
        return false;
    else if(j==i)
    x=p->next;
    return true;
}
//查找元素
node *hsllist::locate_hsllist(int x)
{
    node* p=head->next;
    while(p!=NULL)
    {
        if(p->date==x)
            return p;
        else
            p=p->next;
    }
    return NULL;
}
//插入算法
bool hsllist::insert_hsllist(const int i,const int x)
{
    node* p=head;
    node* s;
    int k=0;
    while(k=!i-1 && p!=NULL)
    {
        p=p->next;
        k++;
    }
    if(p==NULL)
        return false;
    else
    {
        s=new node;
        s->date=x;
        s->next=p->next;
        p->next=s;
        return true;
    }
}
//删除结点
bool hsllist::delete_element_hsllist(const int i)
{
    node* p=head;
    node* u;
    int k=0;
    while(k=!i-1 && p!=NULL)
    {
        p=p->next;
        k++;
    }
    if(p==NULL || p->next==NULL)
        return false;
    else
    {
        u=p->next;
        p->next=u->next;
        delete u;
        return true;
    }
}
//创建链表
void hsllist::create_hsllist()
{
    node *p;
    int x;
    if(head==NULL)
    {
        head=new node;
        head->next=NULL;
    }
    cout<<"请输入结点元素值,并以-1退出:"<<endl;
    cin>>x;
    while(i=!-1)
    {
        p=new node;
        p->date=x;
        p->next=head->next;
        head->next=p;
        cin>>x;
    }
}
//打印并检查链表元素
void hsllist::disp_check_hsllist()
{
    node* p;
    p=head->next;
    while(p=!NULL)
    {
        cout<<p->date<<"\t";
        p=p->next;
    }
    cout<<endl;
}
//递增有序插入
void hsllist::orderly_inserted_hsllist(int x)
{
    node* u;
    node* p=head;
    while(p->next==NULL && p->next->date<x)
    {
        p=p->next;
    }
    if(p->next==NULL || p->next->data>x)
    {
        u=new node;
        u->data=x;
        u->next=p->next;
        p->next=u;
    }
}
这个是类的封装
#include"D:\Microsoft Visual Studio\MyProjects\单链表\linklist.h"
#include<iostream.h>
#include<string.h>
using namespace std
void copy(linkl,link &ll)
{
    link p,r,s;
    p=l->next;
    ll=(link)malloc(sizeof(struct node));
    r=ll;
    while(p!=NULL){
        s=(link)malloc(sizeof(struct node));
        s->date=p-date;
        r->next=s;
        r=s;
        p=p->next;
    }
    r->next=NULL;
}
void vopy2(linkl,link &ll)
{
    if(l!=NULL)
    {
        ll=(link)malloc(sizeof(struct node));
        ll->date=l->date;
        copy2(l->next,ll->next);
    }else ll=NULL;
}
void main()
{
    link l,ll,l2;
    create_hsllist(l);
    disp_check_hsllist("Sllist",l);
    getch();
    copy1(l,ll);
    disp_check_hsllist("copy",ll);
    getch();
    copy2(l,l2);
    disp_check_hsllist("copy2",l2);
    getch();
}
这个是调用类封装的函数,在运行的时候,出现了这些错误,不知道该怎么改,求大神帮帮我
error C2143: syntax error : missing ';' before '<class-head>'
fatal error C1004: unexpected end of file found
搜索更多相关主题的帖子: include public 
2014-03-26 20:54
hubinyes
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:104
专家分:557
注 册:2014-2-4
得分:10 
using namespace std;少分号?
2014-03-26 21:31
youluqi98
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-3-26
得分:0 
回复 2楼 hubinyes
加了分号完了之后,更多错误
2014-03-26 21:36
lonely_21
Rank: 5Rank: 5
等 级:职业侠客
威 望:3
帖 子:108
专家分:395
注 册:2011-11-13
得分:10 
回复 2楼 hubinyes
加分号是正确的,加了分号有更多的错误,说明,你的代码还有其他很多问题,只是现在没识别到那里而已!
2014-03-27 16:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-429210-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.084740 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved