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