数据结构——链表的C++实现
来源:互联网 发布:淘宝店铺店招类型 编辑:程序博客网 时间:2024/04/30 01:45
peLinkListSrc.cpp源码:
#include "peLinkListSrc.h"#include<stdlib.h>#define LINKLIST_SUCCESS0#define LINKLIST_ERROR1template<class T>struct peLinkListStruct{T data;peLinkListStruct<T>* nest;};template<class T>class peLinkList{public:peLinkList( int len );peLinkList( int len, T *data );peLinkList( void );~peLinkList(void);int Add( int data );int Inster( int index, int data );int Delete( int index );public:peLinkListStruct<T>* Head;//头指针int Length;//链表长度};template<class T>peLinkList<T>::peLinkList( void ){Head = (peLinkListStruct<T>*)malloc( sizeof( peLinkListStruct<T> ) );//分配内存Head->nest = NULL;Length = 0;}template<class T>peLinkList<T>::peLinkList( int len ){Head = (peLinkListStruct<T>*)malloc( sizeof( peLinkListStruct<T> ) );//分配内存Head->nest = NULL;Length = len;peLinkListStruct<T> *s;//新项指针peLinkListStruct<T> *p;//牵引指针p = Head;for( int i = 0; i < Length; ++i ){s = (peLinkListStruct<T>*)malloc( sizeof( peLinkListStruct<T> ) );//分配内存s->data = (T)0;//赋值p->nest = s;//把牵引指针指向新项p = s;//牵引指针后移到表尾}//ip->nest = NULL;}template<class T>peLinkList<T>::peLinkList( int len, T *data ){Head = (peLinkListStruct<T>*)malloc( sizeof( peLinkListStruct<T> ) );//分配内存Head->nest = NULL;Length = len;peLinkListStruct<T> *s;//新项指针peLinkListStruct<T> *p;//牵引指针p = Head;for( int i = 0; i < Length; ++i ){s = (peLinkListStruct<T>*)malloc( sizeof( peLinkListStruct<T> ) );//分配内存s->data = data[i];//赋值p->nest = s;//把牵引指针指向新项p = s;//牵引指针后移到表尾}//ip->nest = NULL;}template<class T>peLinkList<T>::~peLinkList(void){}template<class T>int peLinkList<T>::Add( int data ){peLinkListStruct<T> *p;//牵引指针p = Head;while( p->nest ){p = p->nest;}//ppeLinkListStruct<T> *s;s = (peLinkListStruct<T>*)malloc( sizeof( peLinkListStruct<T> ) );//分配内存p->nest = s;s->data = data;s->nest = NULL;Length += 1;return LINKLIST_SUCCESS;}template<class T>int peLinkList<T>::Inster( int index, int data ){peLinkListStruct<T> *s;peLinkListStruct<T> *p;p = Head->nest;int i = 1;while( p && ( i < index ) ){p = p->nest;++i;}if( !p || i > ( index ) )return LINKLIST_ERROR;s = (peLinkListStruct<T>*)malloc( sizeof( peLinkListStruct<T> ) );//分配内存s->data = data;s->nest = p->nest;p->nest = s;Length += 1;return LINKLIST_SUCCESS;}template<class T>int peLinkList<T>::Delete( int index ){peLinkListStruct<T> *s;peLinkListStruct<T> *p;p = Head->nest;int i = 1;while( p && ( i < index ) ){p = p->nest;++i;}if( !p || i > ( index ) )return LINKLIST_ERROR;s = p->nest;p->nest = s->nest;free( s );Length -= 1;return LINKLIST_SUCCESS;}
peLinkList.cpp源码:
#include <iostream>#include "peLinkListSrc.cpp"using namespace std;void main(){//peLinkList<int> List( 10 );int data[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };peLinkList<int> List( 10, data );List.Add( 11 );cout << "Element1:" << endl;peLinkListStruct<int> *p;p = List.Head->nest;for( int i = 0; i < List.Length; ++i ){cout << i << ":"<< p->data << endl;p = p->nest;}//iList.Inster( 5, 12 );cout << "Element2:" << endl;p = List.Head->nest;for( int i = 0; i < List.Length; ++i ){cout << i << ":"<< p->data << endl;p = p->nest;}//iList.Delete( 5 );cout << "Element3:" << endl;p = List.Head->nest;for( int i = 0; i < List.Length; ++i ){cout << i << ":"<< p->data << endl;p = p->nest;}//isystem( "pause" );}
程序运行结果
0 0
- C语言实现数据结构的链表
- 数据结构 链表的实现(C语言)
- 数据结构——链栈的实现(C语言)
- 数据结构C语言实现系列——双向链表
- 数据结构C语言实现——线性链表
- [150420][C++]数据结构复习——链表实现源码
- 数据结构——双向链表(C语言实现)
- 数据结构(严蔚敏)之二——链表的c语言实现
- C语言数据结构2——双向链表的实现
- 数据结构——单循环链表一部分功能的C语言实现
- 数据结构——双循环链表一部分功能的C语言实现
- 《数据结构与算法分析》—栈的链表和数组实现(C语言)
- 数据结构——单链表的实现——C语言版
- 数据结构的C实现_单向链表
- 数据结构的C实现_双向循环链表
- C语言数据结构_链表的实现
- 数据结构(c语言版)链表的实现以及合并
- 数据结构链表的实现(C语言版)
- 数据结构_队列应用举例_划分子集问题
- win7 64位使用sql developer
- HDU 3829 Cat VS Dog(二分图最大独立集)
- IOS JSON解析方式
- ubuntu 12.04 安装深度影音播放器(deepin-music-player)+百度音乐插件
- 数据结构——链表的C++实现
- win8系统下安装32位的oracle数据库,运行32位应用程序时问题解决
- Java中从properties配置文件中读取信息的几种方法
- 花十分钟做计划,一天工作效率高
- HDU 1069 Monkey and Banana ( 动态规划 )
- 黑马程序员-一个菜鸟到大神
- weka介绍与安装
- [LeetCode] LRU Cache
- 开始了,开始了,因为一些原因,开始复习算法以及总结一下工作,很好