数据结构——循环链表模板类

这篇博客详述了数据结构中的循环链表,作者分享了自己编写的循环链表模板类,并提供了主函数的测试代码。通过实例运行展示,强调实践对于掌握数据结构的重要性。
摘要由CSDN通过智能技术生成

数据结构相关笔记整理(1.2)
最近数据结构进展缓慢,每个结构的代码少说都得200行,但是依旧喜欢成功运行时的成就感!这次主要整理了循环链表的模板class,新手上路难免有不当和瑕疵之处,希望群众们及时指出。下面贴出代码:
class及其函数定义:

//循环链表模板class
#include <iostream>
using namespace std;

template<class T>
struct CircleLinkNode {
    T data;
    CircleLinkNode<T> *link;
    //构造函数
    CircleLinkNode(CircleLinkNode<T> * next = NULL) : link(next) {}
    CircleLinkNode(T d, CircleLinkNode<T> * next = NULL) : data(d), link(next) {}
};

template<class T>
class CircleList {
public:
    CircleList(const T & x);                        //构造函数
    CircleList(CircleList<T> & L);                  //复制构造函数
    ~CircleList();                                 //析构函数
    int Length() const;                             //计算循环链表的长度
    bool IsEmpty()
    {
        return first->link == first ? true : false; //判断是否是空表
    }
    CircleLinkNode<T> * getHead() const;            //返回附加头节点的地址
    void setHead(CircleLinkNode<T> * p);            //设置附加头节点的地址
    CircleLinkNode<T> * Search(T x);                //搜索含数据x的节点
    CircleLinkNode<T> * Locate(int i);              //搜索第i个元素的地址
    T getData(int i);                               //取出第i个元素的值
    void setData(int i, T & x);                     //用修改第i个元素的值
    bool Insert(int i, T & x);                      //在第i个元素后插入x
    bool Remove(int i, T & x);                      //删除第i个元素,用x保存删除的数据
    void createList(T endFlag);                     //创建单链表
    void outputList(int stopSequence);
p
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值