头文件list.h
#pragma once
#include <iostream>
using namespace std;
//ListNode类
template <class T>
class ListNode {
public:
ListNode() :link(NULL) {
} //默认构造函数
ListNode(T value) :link(NULL), data(value) {
} //带参构造函数
~ListNode() {
};
void SetLink(ListNode<T>* next); //将参数next的值赋给节点中的数据成员link
void SetData(T value);
ListNode<T>* GetLink(); //返回节点的数据成员link
T& Getdata();
private:
T data;
ListNode<T>* link;
};
template <class T>
void ListNode<T>::SetLink(ListNode<T>* next) {
link = next;
}
template <class T>
void ListNode<T>::SetData(T value) {
data = value;
}
template <class T>
ListNode<T>* ListNode<T>::GetLink() {
return link;
}
template <class T>
T& ListNode<T>::Getdata() {
return data;
}
//List类
template <class T>
class List {
public:
List();
~List();
//向单链表的表尾添加节点
bool AddTail(T value);
//删除表尾节点
bool RemoveTail();
//用来在索引index指定的位置添加一个数据成员是value的节点
bool InsertAt(int index, T value);
//用来删除指定索引index指定位置的节点
bool RemoveAt(int index);
//根据索引index返回单链表中相应节点所保存的data值
T& GetAt(int index);
//判断单链表是否为空
bool IsEmpty();
//获得当前链表中节点的个数
int GetCount();
//删除链表中的所有节点
void RemoveAll();
//顺序输出链表中所有节点的值
void printAll
单链表的实现与应用

最低0.47元/天 解锁文章
895

被折叠的 条评论
为什么被折叠?



