简单的链表与自动清理内存
来源:互联网 发布:新东方托福知乎 编辑:程序博客网 时间:2024/05/23 13:53
#define _CRT_SECURE_NO_WARNINGS#include <iostream>//链表的打印using namespace std;typedef int DATA;struct Snode {DATA data;Snode* pNext;};//g代表:global//m代表:memberclass CList //链表{public:CList() {m_pHead = NULL;}~CList() //析构函数是程序执行完毕后自动调用的,因此可以使用析构函数清理{RemoveAll();}Snode* m_pHead;char m_name[20];void SetName(const char* p) {strcpy(m_name, p);}void AddHead(DATA data) {Snode* p = new Snode;p->data = data;p->pNext = m_pHead;m_pHead = p;}void AddTail(DATA data){Snode* pNew = new Snode;pNew->data = data;pNew->pNext = NULL;if (!m_pHead) {m_pHead = pNew;return;}Snode* p = m_pHead;while (p->pNext != NULL)p = p->pNext;p->pNext = pNew;}void Print() {cout << m_name << endl;Snode* p = m_pHead;while (p) {cout << p->data << endl;p = p->pNext;}}int GetCount() {Snode* p = m_pHead;int i = 0;while (p) {++i;p = p->pNext;}return i;}void RemoveAll()//清理堆空间{Snode* p = m_pHead,*p1;while (p) {p1 = p;p = p->pNext;delete p1;}}};int main() {int i(10);int *p = new int(10);CList list = { NULL }, list2 = {NULL};//初始化为空list.SetName("List1: ");list.AddHead(1);list.AddHead(2);list.AddHead(3);list.AddTail(21);list.AddTail(22);list.AddTail(23);list2.SetName("List2: ");list2.AddHead(10);list2.AddHead(11);list2.AddHead(12);list2.AddTail(51);list2.AddTail(52);list2.AddTail(53);list.Print();cout <<list.GetCount() << endl;list2.Print();cout << list2.GetCount() << endl;list.RemoveAll();list2.RemoveAll();cin.get();return 0;}
阅读全文
0 0
- 简单的链表与自动清理内存
- linux自动内存清理
- 清理内存的程序
- Linux内存分析与清理
- 查看Linux内存条数与清理内存的命令
- HDU 1671 简单字典树+内存清理
- linux服务器内存简单清理(centos)
- 巧用对象的机制构造局部堆自动清理内存助手
- linux清理内存的方法
- MacOS 内存清理的误区
- 关于内存清理的方法
- Linux查看CPU型号及内存频率及其它信息与清理内存的命令
- 内存的自动刷新与自刷新
- 清理内存
- 清理内存
- 清理内存
- 内存清理
- android内存自动清理机制和android垃圾回收器
- java基础篇(八)——接口
- 汇编--学习笔记(十二)-子程序(二)-子程序数据传递
- javaweb
- Hadoop基础教程-第6章 MapReduce入门(6.2 解读WordCount)(草稿)
- Magic
- 简单的链表与自动清理内存
- 创建json
- Android 解析json对象,存放到List中
- jQuery基础-样式篇
- html里制作简单导航栏
- 牛腩总结(一)
- SpringMVC异步上传多文件
- 数据库连接到ireport简单示例
- 【龙芯1c库】封装软件延时接口和使用示例