当前位置:编程学习 > C/C++ >>

C++怎么实现链表啊?急需要解答!

怎么链表 都用的struct 能用class吗?举个例子?
追问:typedef class list node;
typedef node *link;
这两句可以用class link继承list吗?typedef这个偶什么关键字用啊?
答案:
能用class
#include<iostream>
using namespace std;
class list
{
public:
int num,score;
char name[10];
class list *next;
};
typedef class list node;
typedef node *link;

int main()
{
link newnode,ptr,delptr; //声明3个表结构指针
cout<<"请输入5个学生的数据:"<<endl;
delptr=new node; //delptr暂当表头
if(!delptr)
{
cout<<"[Error!内存地址申请失败!]"<<endl;
exit(1);
}
cout<<"请输入座号:";
cin>>delptr->num;
cout<<"请输入姓名:";
cin>>delptr->name;
cout<<"请输入成绩:";
cin>>delptr->score;
ptr=delptr; //保留表头,以ptr为目前结点指针
for(int i=1;i<5;i++)
{
newnode=new node; //建立新结点
if(!newnode)
{
cout<<"[Error!!内存申请失败!]"<<endl;
exit(1);
}
cout<<"请输入座号:";
cin>>newnode->num;
cout<<"请输入姓名:";
cin>>newnode->name;
cout<<"请输入成绩:";
cin>>newnode->score;
newnode->next=NULL;
ptr->next=newnode; //把新结点加在表后面
ptr=ptr->next; //让ptr保持在表的最后面
}
cout<<"\n学生成绩"<<endl;
cout<<" 座号\t姓名\t成绩\n====================="<<endl;
ptr=delptr; //让ptr回到表头
while(ptr!=NULL)
{
cout<<ptr->num<<"\t"<<ptr->name<<"\t"<<ptr->score<<endl;
delptr=ptr;
ptr=ptr->next; //ptr依序往后走访表
delete delptr; //释放内存空间
}
return 0;
}
用new 来创建动态链表。用delete来删除。
列如要创建一个类的链表就可以 book *p1; p1=new book; 来创建一个动态的!

上一个:C++教程推荐,最好实例多的
下一个:c++设语句求出最终输出结果!!

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,