优先级队列  0.1
数据结构_第7章
List.h
Go to the documentation of this file.
1 
14 #ifndef __ListIncluded
15 #define __ListIncluded
16 
17 namespace List
18 {
19 // 线性表的抽象类
20 template <typename T>
21 class List
22 {
23 public:
25  {
26  public:
27  virtual const T &operator*() const = 0;
28  virtual const_iterator &operator++() = 0;
29  // 不能返回抽象类,只能返回抽象类的指针或引用
30  // virtual const_iterator operator++(int) = 0;
31  virtual bool operator==(const const_iterator &rhs) const = 0;
32  virtual bool operator!=(const const_iterator &rhs) const = 0;
33  };
34 
35  class iterator : public const_iterator
36  {
37  public:
38  virtual T &operator*() = 0;
39  virtual const T &operator*() const = 0;
40  virtual iterator &operator++() = 0;
41  // 不允许返回抽象类,只能返回抽象类的指针或引用
42  // virtual iterator operator++(int) = 0;
43  virtual bool operator==(const iterator &rhs) const = 0;
44  virtual bool operator!=(const iterator &rhs) const = 0;
45  };
46 
47 public:
48  virtual void clear() = 0; // 删除线性表中所有的元素
49  virtual int length() const = 0; // 返回线性表的长度
50  virtual void insert(int i, const T &obj) = 0; // 在第i个位置插入一个元素,即新元素的下标将为i
51  virtual void remove(int i) = 0; // 删除第i个位置的元素
52  virtual int search(const T &obj) const = 0; // 返回元素obj在线性表中首次出现的下标
53  virtual T visit(int i) const = 0; // 返回线性表中第i个元素
54  // virtual void traverse() const = 0; // 遍历线性表
55  virtual ~List() = default; // 虚析构函数,防止内存泄漏
56 
57  // 不允许返回抽象类,只能返回抽象类的指针或引用
58  // virtual iterator begin() = 0; // 数据范围[begin, end)
59  // virtual const_iterator begin() const = 0;
60  // virtual iterator end() = 0;
61  // virtual const_iterator end() const = 0;
62 };
63 } // namespace List
64 
65 #include "dLinkList.h" // 双链表类的实现
66 #include "sLinkList.h" // 单链表类的实现
67 #include "seqList.h" // 顺序表类的实现
68 
69 #endif
dLinkList.h
双链表类
List
Definition: dLinkList.h:21
seqList.h
顺序表类
List::List::const_iterator
Definition: List.h:24
List::List::iterator
Definition: List.h:35
sLinkList.h
单链表类的定义和实现