?? 9_6.h
字號:
//9_6.h
#ifndef LINKEDLIST_CLASS
#define LINKEDLIST_CLASS
#include <iostream>
#include <cstdlib>
using namespace std;
#ifndef NULL
const int NULL = 0;
#endif // NULL
#include "9_5.h"
template <class T>
class LinkedList
{
private:
//數據成員:
Node<T> *front, *rear; // 表頭和表尾指針
Node<T> *prevPtr, *currPtr; //記錄表當前遍歷位置的指針,由插入和刪除操作更新
int size; // 表中的元素個數
int position; //當前元素在表中的位置序號。由函數Reset使用
//函數成員:
// 生成新結點,數據域為item,指針域為ptrNext
Node<T> *GetNode(const T& item,Node<T> *ptrNext=NULL);
//釋放結點
void FreeNode(Node<T> *p);
// 將鏈表L 拷貝到當前表(假設當前表為空)。
// 被拷貝構造函數、operator=調用
void CopyList(const LinkedList<T>& L);
public:
LinkedList(void); // 構造函數
LinkedList(const LinkedList<T>& L); //拷貝構造函數
~LinkedList(void); // 析構函數
LinkedList<T>& operator= (const LinkedList<T>& L); // 重載賦值運算符
int ListSize(void) const; //返回鏈表中元素個數(size)
int ListEmpty(void) const; //size等于0時返回TRUE,否則返回FALSE
void Reset(int pos = 0);//將指針currPtr移動到序號為pos的結點,prevPtr相應移動
// position記錄當前結點的序號
void Next(void); //使prevPtr和currPtr移動到下一個結點
int EndOfList(void) const; //currPtr等于NULL時返回TRUE,否則返回FALSE
int CurrentPosition(void) const; //返回數據成員position
void InsertFront(const T& item); //在表頭插入結點
void InsertRear(const T& item); //在表尾添加結點
void InsertAt(const T& item); //在當前結點之前插入結點
void InsertAfter(const T& item); //在當前結點之后插入結點
T DeleteFront(void); //刪除頭結點
void DeleteAt(void); //刪除當前結點
T& Data(void); // 返回對當前結點成員data的引用(使數據域可以被使用或修改)
// 清空鏈表:釋放所有結點的內存空間。被析構函數、operator= 調用
void ClearList(void);
};
#endif // LINKEDLIST_CLASS
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -