返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++链表类怎么封装
  • 262
分享到

C++链表类怎么封装

2023-06-30 10:06:21 262人浏览 泡泡鱼
摘要

这篇文章主要介绍“c++链表类怎么封装”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++链表类怎么封装”文章能帮助大家解决问题。1.CList.h#ifndef CLIST_H#defi

这篇文章主要介绍“c++链表类怎么封装”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++链表类怎么封装”文章能帮助大家解决问题。

1.CList.h

#ifndef CLIST_H#define CLIST_H class Cnode         //节点类{public:    CNode();    ~CNode();    void *data;     //数据域  节点数据的地址    CNode *pnext;   //指针域  保存下一个节点的地址protected:private:}; class CList         //链表类{public:    CList();    ~CList();    void addList(void *data);                  //在尾部添加节点    int getListCount();                        //获取节点的个数    int insertListByPos(int pos,void *data);   //根据pos插入节点    int deleteListByPos(int pos);              //删除节点    void *getNodeByPos(int pos);               //获取节点数据    void *freeList();                          //释放链表protected:private:    CNode *head;                               //链表头    int count;                                 //节点个数}; #endif

2.CList.cpp

#include"CList.h"#include<stdio.h>#include<cstring>//memset头文件 CNode::CNode(){    this->data = NULL;    this->pnext = NULL;} CNode::~CNode(){} CList::CList(){    this->head = new CNode;    this->count = 0;} CList::~CList(){} //在尾部添加节点void CList::addList(void *data){    CNode *tmp = this->head;    while(tmp->pnext!=NULL)    {        tmp = tmp->pnext;        }    CNode *newNode = new CNode;//创建新节点    tmp->pnext = newNode;    newNode->data = data;    ++(this->count);} //获取节点的个数int CList::getListCount(){    return this->count;} //根据pos插入节点int CList::insertListByPos(int pos,void *data){    int num = 0;    CNode* tmp = this->head;    while(tmp->pnext!=NULL)    {        count++;        tmp = tmp->pnext;        if(pos == count)        {            CNode* newNode = new CNode;  //新节点            memset(newNode,'\0',sizeof(CNode));            newNode->data = data;            newNode->pnext = tmp->pnext;            tmp->pnext = newNode;            return 1;        }    }    return 0;} //删除节点int CList::deleteListByPos(int pos){    int count = 0;    CNode* tmp = head->pnext,*pre = head;    while(tmp!=NULL)    {        count++;        if(count == pos)        {            pre->pnext = tmp->pnext;            //tmp数据域释放掉            delete tmp->data;            delete tmp;            return 1;        }        pre = pre->pnext;        tmp = tmp->pnext;    }    return -1;} //获取节点数据void* CList::getNodeByPos(int pos){    int count = 0;    CNode* tmp = head;    while(tmp->pnext!=NULL)    {        count++;        tmp = tmp->pnext;        if(pos == count)        {            return tmp->data;            }    }    return NULL;} //释放链表void* CList::freeList(){    CNode* tmp = head;    while(tmp!=NULL)    {        head = head->pnext;        delete tmp->data;        delete tmp;        tmp = head;        }    return this->head;}

3.main.cpp

计算总节点数:

#include<iOStream>using namespace std;#include"CTools.h"#include "CLabel.h"#include"CEdit.h"#include"CButton.h"#include"CtrBase.h"#include"CLogin.h"      //显示登录窗口#include"CIndexWin.h"   //管理员主界面窗口#include"CManagerWin.h" //经理主界面窗口#include"CWaiterWin.h"  //服务员主界面窗口#include<stdlib.h>#include"CList.h" int main(){    CLoginWin *login = new CLoginWin(12,5,30,20);    CIndexWin *index = new CIndexWin(3,3,25,23);    CManagerWin *manager = new CManagerWin(3,3,25,23);    CWaiterWin *waiter = new CWaiterWin(3,3,25,30);         CList *myList = new CList;    myList->addList(login);    myList->addList(index);    myList->addList(manager);    myList->addList(waiter);    cout<<myList->getListCount()<<endl;//4    return 0;}

关于“C++链表类怎么封装”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网其他教程频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: C++链表类怎么封装

本文链接: https://lsjlt.com/news/328271.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C++链表类怎么封装
    这篇文章主要介绍“C++链表类怎么封装”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++链表类怎么封装”文章能帮助大家解决问题。1.CList.h#ifndef CLIST_H#defi...
    99+
    2023-06-30
  • C++链表类的封装详情介绍
    目录1.CList.h2.CList.cpp3.main.cpp1.CList.h #ifndef CLIST_H #define CLIST_H   class CNode    ...
    99+
    2024-04-02
  • C#怎么封装DBHelper类
    本文小编为大家详细介绍“C#怎么封装DBHelper类”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#怎么封装DBHelper类”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。DBHelper从字面上理解为“数...
    99+
    2023-06-30
  • C#封装DBHelper类
    DBHelper从字面上理解为“数据库帮助类”,由于持久层需要与数据库进行交互,因此每次交互的时候都会重复去加载驱动、填写数据库连接信息、建立(获取)数据库连...
    99+
    2024-04-02
  • 怎么在C++链表中链入不同类型对象
    这篇文章主要介绍“怎么在C++链表中链入不同类型对象”,在日常操作中,相信很多人在怎么在C++链表中链入不同类型对象问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么在C++链表中链入不同类型对象”的疑惑有所...
    99+
    2023-06-17
  • C++哈希表怎么封装出unordered_set和unordered_map
    这篇文章主要介绍了C++哈希表怎么封装出unordered_set和unordered_map的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++哈希表怎么封装出unordered_set和unordered_...
    99+
    2023-07-02
  • C++怎么划分链表
    这篇文章主要讲解了“C++怎么划分链表”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++怎么划分链表”吧!Partition List 划分链表Given a linked list an...
    99+
    2023-06-20
  • C++怎么旋转链表
    这篇文章主要介绍“C++怎么旋转链表”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++怎么旋转链表”文章能帮助大家解决问题。Rotate List 旋转链表Given the head&...
    99+
    2023-06-19
  • C#中ObjectARX .NET封装类的访问怎么实现
    这篇文章主要讲解了“C#中ObjectARX .NET封装类的访问怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#中ObjectARX .NET封装类的访问怎么实现”吧!1) 启动...
    99+
    2023-06-18
  • 关于C# 类的封装详情
    目录1、前言2、实例1、前言 法存取数据。除此之外,还可以控制数据的存取方式。在面向对象编程中,大多数都是以类作为数据封装的基本单位。类将数据和操作数据的方法结[成一个单位。设计类...
    99+
    2024-04-02
  • C++中怎么封装Socket库
    C++中怎么封装Socket库,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。代码如下: if((ErrorCode=WSAStartup(MAKEWORD...
    99+
    2023-06-17
  • C++怎么实现单链表
    本文小编为大家详细介绍“C++怎么实现单链表”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++怎么实现单链表”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。单链表链表内存空间不一定连续,其扩展性较好。多余的不多...
    99+
    2023-07-02
  • C++类与封装的概念是什么及怎么使用
    这篇文章主要介绍“C++类与封装的概念是什么及怎么使用”,在日常操作中,相信很多人在C++类与封装的概念是什么及怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++类与封装的概念是什么及怎么使用”的疑...
    99+
    2023-06-30
  • Pandas怎么封装Excel工具类
    这篇文章主要介绍了Pandas怎么封装Excel工具类的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Pandas怎么封装Excel工具类文章都会有所收获,下面我们一起来看看吧。引言Excel是一种广泛使用的电子...
    99+
    2023-07-06
  • C#使用NPOI导出Excel类封装
    NPOI是指构建在POI 3.x版本之上的一个程序,NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作。 NPOI是一个开源的C#读写Excel、WOR...
    99+
    2024-04-02
  • C++类和对象之封装详解
    目录封装的意义以及示例访问权限公共权限 public保护权限 protected私有权限 privatestruct 和 class的区别成员属性私有化案例1:设计立方体类案例2:点...
    99+
    2024-04-02
  • jdbc怎么对表进行封装
    在Java中使用JDBC对表进行封装可以使用ORM(对象关系映射)框架,如Hibernate、MyBatis等。这些框架可以帮助将J...
    99+
    2024-02-29
    jdbc
  • C++怎么实现链表排序
    本篇内容主要讲解“C++怎么实现链表排序”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++怎么实现链表排序”吧!链表排序Sort a linked list in O(n ...
    99+
    2023-06-20
  • C#集合的链表怎么用
    这篇文章主要介绍了C#集合的链表怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#集合的链表怎么用文章都会有所收获,下面我们一起来看看吧。LinkedList<T>是一个双向链表,其元素会指向...
    99+
    2023-06-30
  • C++怎么实现双向链表
    这篇“C++怎么实现双向链表”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C++怎么实现双向链表”文章吧。前言:前面文章分析...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作