📄 double link list.h
字号:
#ifndef DoubleLinkList_H
#define DoubleLinkList_H
template< class NodeType > class Node; /* Generic Class To Define A Node . */
template< class NodeType > class DoubleLinkList;
/* Generic Class To Define A Double Link List . */
/***************************************************************/
template< class NodeType >
class Node
{
friend class DoubleLinkList< NodeType >;
/* Class DoubleLinkList Made A Friend To Access Private Data Members Of Class Node . */
private :
NodeType Data; /* Data Item Of A Node , Of Return Type NodeType . */
Node< NodeType > *NextNode; /* Pointer Towards The Succeding Node . */
Node< NodeType > *PreviousNode; /* Pointer Towards The Preceding Node . */
public :
Node(); /* Default Constructor , Initialize A Node . */
Node( NodeType &Value );
/* Constructor Accepting One Argument To Assign Data To The Node . */
~Node(); /* Destructor , To Destroy A Node . */
};
/********************************************************/
template< class NodeType >
class DoubleLinkList
{
private :
Node< NodeType > *FirstNode; /* Pointer Towards The First Node Of The List . */
Node< NodeType > *RearNode; /* Pointer Towards The Last Node Of The List */
public :
DoubleLinkList(); /* Default Constructor , Initiates A Double Linked List . */
~DoubleLinkList(); /* Destructor , Destroy The Double Linked List . */
bool IsEmpty(); /* Function To Assert Wether The List Is Emty Or Not . */
void InsertAtFront( NodeType &Value );
/* Function To Insert A Node , At The Begining Of The List . */
void InsertAtRear( NodeType &Value );
/* Function To Insert A Node , At The End Of The List . */
void InsertAtMiddle( NodeType &Value );
/* Function To Insert A Node , In The Middle Of The List . */
bool RemoveFromFront();
/* Function To Remove A Node , From The Begining Of The List . */
bool RemoveFromRear();
/* Function To Remove A Node , From The End Of The List . */
bool RemoveFromMiddle();
/* Function To Remove A Node , From The Middle Of The List . */
void TraverseForward();
/* Function To Traverse & Print , A Linked List From Top To Bottom . */ void TraverseBackwards();
/* Function To Traverse & Print , A Linked List From Bottom To Top . */
int LenghtOfDoubleLinkList();
/* Function To Traverse & Calculate , The Number Of Nodes In A List . */
Node< NodeType > *CreateNode( NodeType &Value );
/* Function To Create & Assign Data To A New Node . */
};
/*******************************************************/
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -