设为首页 加入收藏

TOP

线性表链式存储C++实现(一)
2014-04-06 17:34:50 来源: 作者: 【 】 浏览:262
Tags:线性 链式 存储 实现

  线性表链式存储C++实现

  #include"LsList.h"

  #include<ITERATOR>

  #include<LIST>

  #include<VECTOR>

  using  namespace std;

  #pragma once

  template<CLASS T>

  class LsList

  {

  public:

  class LNode{

  public:

  T data;//数据域

  LNode * next;//指针域

  ~LNode()

  {

  }

  };

  public://定义迭代器类型,用于高效遍历

  //由于是单向链表所以该迭代器类型只能是"前向迭代器"

  class Iter{//迭代器类型

  public :

  Iter(LNode * t)

  {

  mp = t;

  }

  //重载迭代器++操作符

  Iter & operator++( )//前缀自增操作符重载

  {

  LNode *  p = mp;

  mp = mp->next;

  return *this;

  }

  Iter & operator++(int)//后缀自增操作符重载

  {

  LNode *  p = mp;

  mp = mp->next;

  return *this;

  }

  //重载迭代器*操作符

  T & operator*()

  {

  return (*mp)。data;

  }

  //重载迭代器==操作符

  bool  operator==(Iter & iter)

  {

  return mp==iter.mp;

  }

  //重载迭代器!=操作符

  bool  operator!=(Iter & iter)

  {

  return mp!=iter.mp;

  }

  private :

  LNode *  mp;

  };

  public:

  typedef T ElemType;//定义元素类型

  LsList(void)//建立一个空的链式线性表

  {

  size = 0;

  head.next = 0;

  pr = & head;

  }

  LsList(LsList<T> & ls)//赋值构造函数

  {

  size = 0;

  head.next = 0;

  pr = & head;

  for(LsList<T>::Iter iter  = ls.begin();iter != ls.end();iter++)

  {

  push_back( *iter);

  }

  }

  //赋值操作符重载

  LsList & operator = ( LsList<T> & tl)

  {

  clear();

  size = 0;

  head.next = 0;

  pr = & head;

  for(LsList<T>::Iter iter  = tl.begin();iter != tl.end();iter++)

  {

  push_back( *iter);

  }

  return *this;

  }

  //数组初始化方式

  LsList(T t[],int n)

  {   if(n<=0)

  {

  throw underflow_error("underflow_error");

  }

  size = 0;

  LNode * pl = new LNode();

  head.next = pl;

  pr = pl;

  for(int i=0;i<N-1;I++) pl- {>data = t[i];

  LNode *p = new LNode();

  pl->next = p;

  pl = p;

  size++;

  }

  pl->data = t[n-1];

  pr = pl;

  size++;

  pl->next = 0;

  }

     

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++实现静态链表 下一篇C++Tab键实现自动补全输入功能

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·HTTPS 详解一:附带 (2025-12-26 02:20:37)
·TCP/IP协议到底在讲 (2025-12-26 02:20:34)
·TCP和UDP在socket编 (2025-12-26 02:20:32)
·有没有适合新手练习 (2025-12-26 01:48:47)
·用清华镜像网怎么下 (2025-12-26 01:48:44)