[置顶] C++利用类建立链表

标签: c++insertnulldeletesearchlist
4715人阅读 评论(1) 收藏 举报
分类:

头文件

#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;
			}
		}
	}
}



2
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1569961次
    • 积分:14242
    • 等级:
    • 排名:第843名
    • 原创:124篇
    • 转载:7篇
    • 译文:35篇
    • 评论:543条
    联系我
    本博客微信公共帐号
    本博客开通了微信公共帐号,可以在微信里面搜索iteblog_hadoop,欢迎大家关注!
    《过往记忆》博客微信公共帐号
    关注大数据技术博客
    关注大数据技术
    rss订阅本站
    新浪微博
    博客专栏
    最新评论