C++实现单链表常用功能(不带头结点)

自己用C++实现最基本的数据结构之一单链表,常用功能都有了,可以很方便的进行栈和队列功能的扩展。另外,香港服务器,感谢老婆花了一个晚上帮忙测试,能够想到的场景都经过单元测试。下面是代码。

singlelist.h:链表结点数据元素类型ELEMTYPE,重载了运算符==,=,<,>,香港空间,香港服务器,方便运算。

1 #ifndef SINGLE_LIST_H 2 #define SINGLE_LIST_H 3 #include <stdlib.h> 4 #include <stdio.h>{ 8RET_SUCCESS = 0, 9RET_FAILURE = -1 10 };{ 14TRUE = 1, 15FALSE = 0 16 }; 17 18 typedef struct sElemType 19 { 20int m_iData; 21sElemType& operator= (const sElemType& elem) 22 { 23if(this == &elem) 24 { 25return *this; 26 } 27this->m_iData = elem.m_iData; 28return *this; 29 }> (const sElemType& elem) 32 { 33if(this->m_iData > elem.m_iData) 34 { 35return TRUE; 36 } 37return FALSE; 38 }< (const sElemType& elem) 41 { 42if(this->m_iData < elem.m_iData) 43 { 44return TRUE; 45 } 46return FALSE; 47 }== (const sElemType& elem) 50 { 51if(this->m_iData == elem.m_iData) 52 { 53return TRUE; 54 } 55return FALSE; 56 } print() 59 {,m_iData); 61 } 62 } ELEMTYPE; 63 64 typedef struct ListNode 65 { 66 ELEMTYPE data; 67ListNode* next; 68 } ListNode;insertAtHead(ListNode* &head,ELEMTYPE& elem);insertAtTail(ListNode* &head,ELEMTYPE& elem);deleteHead(ListNode* &head,ELEMTYPE& elem);deleteTail(ListNode* &head,ELEMTYPE& elem);getHead(ListNode* &head,ELEMTYPE& elem);getTail(ListNode* &head,ELEMTYPE& elem);insertNode(ListNode* &head,ELEMTYPE& elem);deleteNode(ListNode* &head,ELEMTYPE& elem);insertLocation(ListNode* &head,int iLocation,ELEMTYPE& elem);deleteLocation(ListNode* &head,int iLocation,ELEMTYPE& elem);getListLength(ListNode* &head);search(ListNode* &head,ELEMTYPE& elem,int &iLocation);reverse(ListNode* &head);sort(ListNode* &head);isEmpty(ListNode* &head);clearAll(ListNode* &head);DisplayList(ListNode* &head);120 #endif经历一种身体下了地狱,眼睛进入天堂,灵魂归入故里。

C++实现单链表常用功能(不带头结点)

相关文章:

你感兴趣的文章:

标签云: