简单又短的链表操作(帮忙改个错)
#include<iostream>#include<string>
#include<iomanip>
using namespace std;
class code
{
private:
char character[20];
code *str_ptr;
public:
code(const char* init_char="",code* init_ptr=NULL)
{
strcpy(character,init_char);
str_ptr=init_ptr;
}
char* get_char()
{
return character;
}
code* get_ptr()
{
return str_ptr;
}
const code* get_ptr()const
{
return str_ptr;
}
void set_char(const char* &init_char)
{
strcpy(character,init_char);
}
void set_ptr(code* init_ptr)
{
str_ptr=init_ptr;
}
int length(const code* source);
void head_insert(code* &head_ptr,const char* &entry);
void print_code(const code* &head_ptr);
};
int code::length(const code* source)//计算链表的长度
{
const code* cursor;
int count=0;
for(cursor=source;cursor!=NULL;cursor=cursor->get_ptr())
++count;
return count;
}
void code::head_insert(code* &head_ptr,const char* &entry)//在链表的开头插入数据
{
head_ptr=new code(entry,head_ptr);
}
void code::print_code(const code* &head_ptr)//输出链表
{
const code* cursor;
for(cursor=head_ptr;cursor!=NULL;cursor=cursor->get_ptr())
cout<<setw(5)<<cursor->get_char();//这里有问题
}
int main()
{
code os,*ptr=&os;
char strings[5][20];
for(int i=0;i<5;i++)
{
cout<<"strings["<<i<<"]=";
cin>>strings[i];
os.head_insert(ptr,strings[i]);//这里有问题
}
cout<<"cout:"<<os.length(ptr)<<endl;//这里有问题
cout<<"strings:";
os.print_code();
return 0;
}
刚看了C++的链表,就自己弄了一个最简单的链表操作,但出现了两三处错误,就是修改不过来,请各位大侠们帮帮忙,不胜感激...