10个比较经典的C++程序。初学者就先多学习学习别人吧。

源代码在线查看: 9_9.h

软件大小: 1880 K
上传用户: l550253832
关键词: 比较 初学者 程序
下载地址: 免注册下载 普通下载 VIP

相关代码

				//链表类的声明
				//链表类的声明
				#ifndef LINKEDLIST_CLASS
				#define LINKEDLIST_CLASS
				#ifndef NULL
				const int NULL = 0;
				#endif 
				
				template 
				class Node
				{    Node *next;	//next为指向后继结点的指针
				public:
				     T data;	//公有数据域
				     Node (const T& item, Node* ptrnext = NULL);    //构造函数
				     void InsertAfter(Node *p);	//在本结点之后插入一个同类结点p 
				     Node *DeleteAfter(void);	//删除本结点的后继结点,并返回其地址
				     Node *NextNode(void) const;	 //获取后继结点的地址
				};
				
				template 
				class LinkedList
				{
				   private:
				   //数据成员:
				     Node *front, *rear;	// 表头和表尾指针
				     Node *prevPtr, *currPtr;   //记录表当前遍历位置的指针,由插入和删除操作更新
				     int size;	// 表中的元素个数
				     int position;	//当前元素在表中的位置序号。由函数Reset使用
				
				   //函数成员:
				     // 生成新结点,数据域为item,指针域为ptrNext
				     Node *GetNode(const T& item,Node *ptrNext=NULL);
				
				     //释放结点
				     void FreeNode(Node *p);
				     
				     // 将链表L 拷贝到当前表(假设当前表为空)。
				     // 被拷贝构造函数、operator=调用
				     void CopyList(const LinkedList& L);
				     
				   public:
				     LinkedList(void);	// 构造函数
				     LinkedList(const LinkedList& L);  //拷贝构造函数
				     ~LinkedList(void);	// 析构函数
				     LinkedList& operator= (const LinkedList& 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
				
							

相关资源