算法之美:C++实现单向链表ADT

单链表的实现与应用

头文件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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值