C++利用类建立链表

原创 2012年03月23日 21:08:13

头文件

#ifndef LIST_H
#define LIST_H

namespace wyp{
	template<class T>
	class Node{
	public:
		Node(const T& data, Node<T>* link) : data(data), link(link){
			
		}
		
		Node<T> * getLink(){
			return link;
		}
		const T getData(){
			return data;
		}
		void setData(const T &data){
			this->data = data;
		}
		void setLink(Node<T> *link){
			this->link = link;
		}
		
	private:
		T data;
		Node<T> *link;
	};
	
	template<class T>
	void headInsert(Node<T>*& head, const T &data);
	
	template<class T>
	void insert(Node<T>* after, const T& data);
	
	template<class T>
	void deleteNode(Node<T> *before);
	
	template<class T>
	void deleteFirstNode(Node<T> *&head);
	
	template<class T>
	Node<T> * search(Node<T> *head, const T&data);
}
#endif

实现

#include <cstddef>
#include "list.h"

namespace wyp{
	template<class T>
	void headInsert(Node<T>*& head, const T &data){
		head = new Node<T>(data, head);
	}
	
	template<class T>
	void insert(Node<T>* after, const T& data){
		after->setLink(new Node<T>(data, after->getLink()));
	}
	
	template<class T>
	void deleteNode(Node<T> *before){
		Node<T> *discard;
		discard = before->getLink();
		before->setLink(discard->getLink());
		delete discard;
	}
	
	template<class T>
	void deleteFirstNode(Node<T> *&head){
		Node<T> * discard;
		discard = head;
		head = discard->getLink();
		delete discard;
	}
	
	template<class T>
	Node<T> * search(Node<T> *head, const T&data){
		Node<T> *here = head;
		if(here == NULL){
			return NULL;
		}else{
			while(here->getData() != data && here->getLink() != NULL){
				here = here->getLink();
			}
			if(here->getData == data){
				return here;
			}else{
				return NULL;
			}
		}
	}
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C++建立二叉链表树

  • 2011年04月20日 16:15
  • 943B
  • 下载

数据结构_树_二叉树的建立、遍历、复制与移除_二叉链表存储_C++实现

"head.h" #include using namespace std; class BitNode { public: BitNode(); char ch; BitNod...

C++链表的建立,排序,删除

描述:使用随机数建立链表节点,节点的结构很简单,就是一个整形数(随机数)和一个指针,有三个函数,第一个函数建立链表,第二个函数对链表进行排序,第三个函数将链表中所有有重复数字的节点删除,只留只出现过一...

c++模板链表类代码

  • 2010年06月04日 18:46
  • 3KB
  • 下载

C++中单链表的建立

单链表的建立和输出: #include "stdafx.h" #include #include using namespace std; struct Student { string name...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++利用类建立链表
举报原因:
原因补充:

(最多只允许输入30个字)