双向链表

双向链表的实现

template<typename T>
struct Node{
  T data;
  Node<T> *llink;
  Node<T> *rlink;
};
template<typename T>
class DoubleLink{
private:
  Node<T> *head;
public:
  DoubleLink();
  ~DoubleLink();
  void Append(T data);
  void Display();
  void Insert(int locate,T data);
  T Get(int locate);
  T Delete(int locate);
};

双向链表的构造-空表的构造

template<typename T>
DoubleLink<T>::DoubleLink()
{
  head=new Node<T>;
  head->rlink=NULL;
  head->llink=NULL;
}

追加—-头插法的实现

template<typename T>
void DoubleLink<T>::Append(T data)
{
  Node<T> *p;
  p=head->rlink;
  while(p)
  {
    cout<<p->data<<" ";
    p=p->rlink;
  }
  cout<<endl;
  return;
}

析构函数的实现

template<typename T>
DoubleLink<T>::~DoubleLink(){
  Node<T> *p,*q;
  p=head;
  while(p)
  {
    q=p->rlink;
    delete p;
    p=q;
  }
}

 

发布者

deng

听闻余生久不遇,相逢别错过。

发表评论

电子邮件地址不会被公开。 必填项已用*标注