⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 double link list.h

📁 这是一个双向链表的问题
💻 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 + -