数据结构类的封装问题,急!!!!
#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