C++链表类怎么封装
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"C++链表类怎么封装"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"C++链表类怎么封装"文章能帮助大家解决问题。1.CList.h#ifnd
千家信息网最后更新 2026年11月01日C++链表类怎么封装
这篇文章主要介绍"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; //节点个数}; #endif2.CList.cpp
#include"CList.h"#include#include //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
计算总节点数:
#includeusing 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 #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< getListCount()< 关于"C++链表类怎么封装"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
节点
数据
C++
封装
个数
界面
知识
地址
尾部
行业
不同
实用
内容
实用性
实际
指针
文件
文章
方法
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
科技互联网产品
互联网最新的科技
圆梦互联网科技
北京互联网科技有限公司
唐信互联网科技
苏州互联网科技贷款公司
互联网 新科技
佰商互联网科技有限公司
富国互联网科技创新基金
华服互联网科技官网
南平创想时代互联网科技有限公司
互联网科技商业
互联网科技扶贫时间
996高科技互联网公司
广州新华互联网科技学校电竞方面
互联网科技博主张洲
亚光科技低轨卫星互联网
安徽九吞吴互联网科技有限公司
互联网大会出现的黑科技
广州全民伙伴互联网科技有限公司
深圳科技互联网
易通互联网络科技有限公司
互联网金融科技委员会
互联网科技公司招聘
农村开互联网科技讲堂
广州新华互联网科技学校电竞方面
张召忠谈中国互联网科技
领航科技大厦互联网公司
互联网科技收购价值
互联网的科技体现在哪里