急,求救
用一个链表来存储一个标识符
用当前的字符串和标识符进行比较,相等则输出标识符
不等则将字符串插入链表
标识别符有两个数据成员,int number和char *name
用cher token[20]来存储当前的字符串,不断从文件更新token[20]的值
int hao=1; 用来给标识符的number赋值构造结点
请问我list::search()函数错在哪?谢谢
class list;
class Item //标识符结点类
{
public:
friend class List;
Item(int num,char* na)
{number=num;
name=na;
}
private:
int number; //标识符序列
char* name; //标识符名称
Item* next;
};
class List //标识符链表类
{
public:
List()
{head=NULL;
tail=NULL;}
~List()
{
}
void insert(int num,char* na);
void search();
private:
Item* head;
Item* tail;
};
void List::insert(int num,char* na) //插入标识符表
{Item *tp=new Item(num,na);
if (head==NULL)
{head=tp;
tail=tp;
tp->next=NULL;
}
else
{tp->next=NULL;
tail->next=tp;
tail=tp;
}
}
void List::search() //查找标识符表
{Item *tp=head;
while(tp)
{if(strcmp(tp->name,token)==1)
{tp=tp->next ;
}
else
{cout<<"(1,"<<tp->number <<")"<<tp->name<<" ";
return;}}
insert(hao,token);
cout<<"(1,"<<tail->number <<")"<<tail->name<<" ";
hao++;
}