C++链表

来源:百度知道 编辑:UC知道 时间:2024/05/21 19:08:17
(单链表)或者(双链表)!不知道哪位网友有程序,或者帮忙做一个程序,在下不胜感激!单链表或者双链表选一个做就行,谢谢大家,我要的比较急,最好还有程序的说明!!

C++单链表操作

#ifndef __LINKEDLIST_HPP__
#define __LINKEDLIST_HPP__

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

extern C {
int exit(int);
};

//单链表结点类定义
template <class T> //结点数据域data的类型以参数 (模板)形式提供
class Node {
public: //公有成员
T data; //数据域,允许外部直接访问
private: //私有成员
Node<T> *next; //指针域(链域),指向后继结点的指针
public: //公有成员
//构造函数(初始化data和next)
Node(const T& item, Node<T> *pNext=NULL) :
data(item), next(pNext){}
//在当前结点之后插入指针p所指结点
void InsertAfter(Node<T> *p) {
if (!p) return; //若p为空,则返回
p->next = next; //将待插入结点p的next指向当前结点的next域
next = p; //将当前结点的next更新为待插入结点p
}
//删除当前结点的后继结点并返回被删除结点的地址
Node<T> *DeleteAfter() {
if (!next) return NULL; //若无后继(next为NULL),则返回
Node<T> *pNext = next; //n