博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++单链表基本算法实现
阅读量:6165 次
发布时间:2019-06-21

本文共 1962 字,大约阅读时间需要 6 分钟。

C++单链表基本算法实现

#ifndef LinkList_h#define LinkList_h#include 
using namespace std;template
struct Node{ T data; struct Node
* next;};template
class LinkList{public: LinkList(){front = new Node
; front->next = NULL;} LinkList(T a[],int n); ~LinkList(); void PrintList(); int GetLength(); Node
* Get(int i); int Locate(T x); void Insert(int i, T x); T Delete(int i); private: Node
* front;};template
LinkList
::LinkList(T a[], int n){// front = new Node
; //头插法// front->next = NULL;// for(int i = n-1; i>=0; i--){// Node
*s = new Node
;// s->data = a[i];// s->next = front->next;// front->next = s;// } front = new Node
; //尾插法 Node
* r = front; for(int i = 0;i
*s = new Node
; s->data = a[i]; r->next = s; r = s; } r->next = NULL;}template
LinkList
::~LinkList(){ Node
*p = front; while(p){ front = p; p = p->next; delete front; }}template
Node
*LinkList
::Get(int n){ Node
* p = front->next; int j = 1; while (p && (j != n)){ p = p->next; j++; } if(!p) throw "查找位置非法"; else return p;}template
int LinkList
::Locate(T x){ Node
* p = front->next; int j = 1; while(p){ if(p->data == x){ return j; }else{ p = p->next; j++; } } return -1;}template
void LinkList
::Insert(int i, T x){ Node
* p = front; p = Get(i); if(p){ Node
*s = new Node
; s->data = p->data; s->next = p->next; p->next = s; p->data = x; } else{ throw "位置插入错误";}}template
T LinkList
::Delete(int i){ Node
*p = front; if(i!=1) p = Get(i-1); Node
*q = p->next; p->next = q->next; T x = q->data; delete q; return x; }template
int LinkList
::GetLength(){ if(!front->next) return 0; Node
*p = front->next; int j = 0; while(p){ p = p->next; j++; } return j;}template
void LinkList
::PrintList(){ Node
*p = front->next; if(!p) {cout<< "链表为空列表!"<
data<<" "; p= p->next; } cout << endl;}#endif /* LinkList_h */

 

转载于:https://www.cnblogs.com/ycbeginner/p/10006328.html

你可能感兴趣的文章
产品架构model
查看>>
echo向文件中写入
查看>>
Linux Socket 网络编程 (IBM网站)第二章
查看>>
RTSP简介
查看>>
【藏】iPhone Development: 12 Tips To Get You Started Article
查看>>
进程/线程介绍
查看>>
JavaScript实现选项卡(三种方法)
查看>>
inno setup中文支持
查看>>
springboot项目上传文件出现临时文件目录为空
查看>>
CF1028D Order book 思维
查看>>
Hibernate快速入门
查看>>
poj 2115 求线性同余方程 C Looooops(好理解欧几里德扩展定理怎么应用)
查看>>
C++异常机制
查看>>
DV 以后的路
查看>>
office2003 + photoshop8.0 + flash8.0 安装步骤及注意事项
查看>>
C语言知识点
查看>>
Hive JDBC:Permission denied: user=anonymous, access=EXECUTE, inode=”/tmp”
查看>>
正则表达式 元字符
查看>>
【文文殿下】APIO2019游记
查看>>
Ubuntu 16.04安装有道词典
查看>>