Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2350792
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:03:15

#include
class link//接点的定义=================--------------------=====================
{
public:
//插入元素-------------------------------
link* insert(int val);
private:
//构造函数------------------
link(int linkValue,link *nextPtr);
link(const link& source);
link* duplicate()const;
//数据域------------------------------------
int value;
link* ptrToNextLink;
friend class list;
};

link::link(int val,link* next):value(val),ptrToNextLink(next)
{

}

link::link(const link &source):value(source.value),ptrToNextLink(source.ptrToNextLink)
{

}

link* link::insert(int val)
{
ptrToNextLink=new link(val,ptrToNextLink);
return ptrToNextLink;
}

link* link::duplicate()const
{
  link* newlink;
  if(ptrToNextLink!=0)
  newlink=new link(value,ptrToNextLink->duplicate());
  else
  newlink=new link(value,0);
  return newlink;
}
// //==================================================================================
///
//
//
//
//
//
//
//
//
//=================================================================================
 class list//表类的声明---+++++++++++++---------++++++++-----------------=++++++++++++++++
{
public:
//构造函数--------
list();
list(const list& source);
~list();//析够函数--------------------
//
void add(int value);//加入元素----------
void deleteAllValue();//删除全部元素-----------------
int firstElement()const;//返回第一个元素-----------
int includes(int value)const;//包含测试----------------
int isEmpty()const;//判断表是否为空----------------------=
         void removeFirst();//移动第二个元素为第一个元素--------
list* duplicate()const;//复制---------=========
protected:
link* ptrToFirstLink;//数据域--------------------
};
list::list():ptrToFirstLink()
{

}
int list::isEmpty()const
{
return ptrToFirstLink==0;
}
void list::add(int val)
{
ptrToFirstLink=new link(val,ptrToFirstLink);

}
int list::firstElement()const
{
if(ptrToFirstLink!=0)
return ptrToFirstLink->value;
}
void list::removeFirst()
{
if(ptrToFirstLink!=0)
    link *p=ptrToFirstLink;
ptrToFirstLink=p->ptrToNextLink;
delete p;
}
int list::includes(int val)const
{
for(link *p=ptrToFirstLink;p;p=p->ptrToNextLink)
if(val==p->value)
return 1;
return 0;
}
void list::deleteAllValue()
{
link* next;
for(link *p=ptrToFirstLink;p!=0;p=next)
{
next=p->ptrToNextLink;
p->ptrToNextLink=0;
delete p;
}
ptrToFirstLink=0;
}
list* list::duplicate()const
{
list *newlist=new list;
if(ptrToFirstLink)
newlist->ptrToFirstLink=ptrToFirstLink->duplicate();
return newlist;
}
list::list(const list &source)
{
if(source.isEmpty())
ptrToFirstLink=0;
else
{
link* firstLink=source.ptrToFirstLink;
ptrToFirstLink=firstLink->duplicate();
}
}
 list::~list()
{
deleteAllValue();
}
//==========================================================以上是类的定义====================


--------------------next---------------------

阅读(1021) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~