以下为tlist.h文件代码
/*
* File: tlist.h
* Author: root
*
* Created on 2008年12月1日, 下午9:46
*/
#ifndef _TLIST_H
#define _TLIST_H
#include <list>
class TList {
public:
TList();
TList(const TList& orig);
virtual ~TList();
public:
bool Add(void* data);
bool Remove(void* data);
bool IsEmpty();
bool Insert(int location,void* data);
void* Front();
void* Last();
void* GetElem(int location);
int Count();
void Free();
private:
std::list<void*> list;
};
#endif /* _TLIST_H */
以下为实现tlist.cpp文件代码
/*
* File: tlist.cpp
* Author: root
*
* Created on 2008年12月1日, 下午9:46
*/
#include "tlist.h"
//------------------------------------------------------------
TList::TList()
{
}
//------------------------------------------------------------
TList::TList(const TList& orig)
{
}
//------------------------------------------------------------
//插入结点
bool TList::Add(void* data)
{
list.push_back(data);
return true;
}
//------------------------------------------------------------
bool TList::Remove(void* data)
{
if(IsEmpty())
{
return false;
}
else
{
list.remove(data);
return true;
}
}
//------------------------------------------------------------
bool TList::IsEmpty()
{
if(list.empty())
return true;
else
false;
}
//------------------------------------------------------------
bool TList::Insert(int location, void* data)
{
}
//------------------------------------------------------------
void* TList::Front()
{
if(IsEmpty())
return NULL;
else
return list.front();
}
//------------------------------------------------------------
void* TList::Last()
{
if(IsEmpty())
return NULL;
else
return list.back();
}
//------------------------------------------------------------
void* TList::GetElem(int location)
{
}
//------------------------------------------------------------
int TList::Count()
{
int count = 0;
if(IsEmpty())
count = 0;
else
count = list.size();
return count;
}
//------------------------------------------------------------
void TList::Free()
{
list.clear();
}
//------------------------------------------------------------
TList::~TList()
{
Free();
}
//------------------------------------------------------------
以下为newmain.cpp测试代码
/*
* File: newmain.cpp
* Author: root
*
* Created on 2008年12月3日, 下午9:09
*/
#include <stdlib.h>
#include "tlist.h"
#include <iostream>
using namespace std;
/*
*
*/
typedef struct
{
int a;
char item[1024];
}Data;
int main(int argc, char** argv) {
TList* list = new TList();
Data* data = new Data();
data->a = 10;
strcpy(data->item,"abc");
bool status = list->Add((void*)data);
if(status)
cout << "Add data successful" << endl;
else
cout << "Add data failure" << endl;
Data*d = new Data();
d->a = 100;
strcpy(d->item,"ddddddddd");
status = list->Add((void*)d);
if(status)
cout << "Add data successful" << endl;
else
cout << "Add data failure" << endl;
Data* data1;
data1 = (Data*) list->Front();
cout << "a = " << data1->a << endl;
cout << "item = " << data->item << endl;
Data* d1;
d1 = (Data*) list->Last();
cout << "a = " << d1->a << endl;
cout << "item = " << d1->item << endl;
list->Remove(data);
cout << "count = " << list->Count() << endl;
Data* dd;
dd = (Data*)list->Front();
cout << "a = " << dd->a << endl;
cout << "item = " << dd->item << endl;
return (EXIT_SUCCESS);
}
分享到:
相关推荐
链表类 c++ 实现的 链表类 c++ 实现的 链表类 c++ 实现的
C++实现链表模板(链表项的数据元素可以为任意类型):链表项的插入、删除、链表的打印、两个链表的连接 开发环境为VS2010
链表的c++实现链表的c++实现链表的c++实现
1. 请创建一个数据类型为T的链表类模板List,实现以下成员函数: 1) 默认构造函数List(),将该链表初始化为一个空链表(10分) 2) 拷贝构造函数List(const List<T>& list),根据一个给定的链表构造当前链表(10...
此代码是我收集的用C++实现单向链表模板类。
用C++实现的顺序链表,简单易懂,适合初学者
双向循环链表 C++实现 双向循环链表 C++实现 双向循环链表 C++实现 双向循环链表 C++实现 双向循环链表 C++实现
用C++实现逆置链表 //尾插法建立带表头结点的单链表 Linklist *CreateLinklist() { Elemtype value; Linklist *head,*rear; rear=head=new Linklist; cout请输入链表,以0为结尾: "; cin>>value; while(value!...
使用c++实现的一个异质链表,主要介绍在c++中异质链表的实现方式,异质链表的好处……
c++链表队列的实现,c++链表队列的实现,c++链表队列的实现,c++链表队列的实现,c++链表队列的实现,c++链表队列的实现
此代码是我收集的用C++实现双向链表模板类。
C++实现的链表
用C++实现链表,对于单链表的运用,添加,删除,在指定的位置添加和删除,实现标准链表的功能。
这是我用C++来写的一个关于链表操作的程序,程序中包含了如何创建链表,及链表的各项操作,如:计算长度,头插入,尾插入,中间插入,及删除头,删除尾删除指定元素等,此程序我已经运行过了,是没有问题的.希望对大家有所帮助.
这是一个单循环链表,具备基本的操作,在普通链表的基础上,实现了定长循环链表的循环输入,判断链表是否有环等较为特殊的操作。增删改查自然也有。
C++类实现链表,定义ListNode和LinkedList两个类实现了链表的创建,插入,删除操作等。
用c++实现链表的建立、插入和删除操作。希望能对刚学数据结构的同学有点帮助。
实现的操作:有头链表; 实现的功能:增,删,改,查; 关于资源:我的文章中有部分解释,相关内容还可查看我的文章; 关于问题:有问题及时私信我,例如不能运行,运行失败等问题;
C++实现约瑟夫环,链表实现 C++源代码 .cpp
异质链表的c++实现,主要使用到了虚函数。