今天C++老师让写了一个链表的类,其中要求弄一个节点类,表示深深的力不从心。晚上无聊的时候重新想了下这个问题,感觉还可以,就敲了下。
先分块介绍下:
节点类
class node//节点类
{
public:
double data;
node *next;
};
链表类:
class Link//;链表类
{
public:
Link()//构造函数
{
pfront=NULL;
pend=NULL;
}
double Getx(int n);//找出第n个数字
void add(double x);//添加函数
~Link();//析构函数
private:
node *pfront,*pend;
};
下面是总的代码:
/*大致实现了两个功能,给链表添加数字,找出链表中第n个数字,还有没考虑访问越界的情况以后慢慢更新*/
#include<iostream>
using namespace std;
class node//节点类
{
public:
double data;
node *next;
};
class Link//;链表类
{
public:
Link()//构造函数
{
pfront=NULL;
pend=NULL;
}
double Getx(int n);//找出第n个数字
void add(double x);//添加函数
~Link();//析构函数
private:
node *pfront,*pend;
};
void Link::add(double x)
{
node *p;
p=new node;
if(pfront==NULL&&pend==NULL)
{
pfront=pend=p;
pfront->data=x;
pend->data=x;
pend->next=NULL;
}
else {
pend->next=p;
pend=p;
pend->data=x;
pend->next=NULL;
}
}
double Link::Getx(int n)
{
node *p;
p=new node;
p=pfront;
for(int i=1;i<n;i++)
{
if(p->next!=NULL)
p=p->next;
}
return p->data;
}
Link::~Link()
{
node *p;
while(pfront->next!=NULL)
{
p=pfront->next;
delete(pfront);
}
}
int main()
{
Link l;
l.add(1.1);
l.add(20.5);
cout<<l.Getx(1)<<endl;
cout<<l.Getx(2)<<endl;
return 0;
}
时间: 2024-11-11 11:51:50