[C++]线性链表之单链表
[文档整理系列] 线性链表之单链表
- /*
- 问题描述:线性表____链表_____单链表
- @date 2017-3-7
- */
- #include<iostream>
- using namespace std;
- template<typename T>
- struct node{
- T data;
- node<T> *next;
- };
- template<typename T>
- class LinkedList{
- public:
- LinkedList();
- LinkedList(T arr[],int n);
- ~LinkedList();
- int getLength();
- void InsertAt(int n,T data);
- T DeleteAt(int i);
- T GetData(int i);
- int getDataAt(T data);
- void Print();
- private:
- int length;
- node<T> *first;
- };
- template <class T>
- LinkedList<T>::LinkedList(){
- first = new node<T>;
- first->next = NULL;
- length = 0;
- }
- template <class T>
- LinkedList<T>::LinkedList(T arr[],int n){
- first = new node<T>(); //初始化指针变量
- first->next = NULL;
- for(int i = 0;i<n;i++){
- node<T> s;
- s.data = arr[i];
- s.next = first->next;
- first->next = &s;
- }
- length = n;
- cout<<"初始化成功!"<<endl; //test
- }
- template<typename T>
- LinkedList<T>::~LinkedList(){
- node<T> *q;
- while (first) //释放单链表的每一个结点的存储空间
- {
- q=first; //暂存被释放结点
- first=first->next; //工作指针p指向被释放结点的下一个结点,使单链表不断开
- delete q;
- }
- cout<<"析构(销毁)成功!"<<endl; //test
- }
- template<typename T>
- int LinkedList<T>::getLength(){
- return length;
- }
- template< typename T>
- void LinkedList<T>::InsertAt(int n,T data){
- cout<<"成功插入第"<<n<<"个位置!"<<endl;
- }
- int main(){
- int arr[6]={7,19,4,5,6,9};
- LinkedList<int> t(arr,6);
- // t.InsertAt(7,689);
- return 0;
- }
[C++]线性链表之单链表的更多相关文章
- 【Java】 大话数据结构(2) 线性表之单链表
本文根据<大话数据结构>一书,实现了Java版的单链表. 每个结点中只包含一个指针域的链表,称为单链表. 单链表的结构如图所示: 单链表与顺序存储结构的对比: 实现程序: package ...
- Java数据结构和算法(一)线性结构之单链表
Java数据结构和算法(一)线性结构之单链表 prev current next -------------- -------------- -------------- | value | next ...
- 线性表之单链表C++实现
线性表之单链表 一.头文件:LinkedList.h //单链表是用一组任意的存储单元存放线性表的元素,这组单元可以是连续的也可以是不连续的,甚至可以是零散分布在内存中的任意位置. //单链表头文件 ...
- [数据结构 - 第3章] 线性表之单链表(C++实现)
一.类定义 单链表类的定义如下: #ifndef SIGNALLIST_H #define SIGNALLIST_H typedef int ElemType; /* "ElemType类型 ...
- 数据结构5: 链表(单链表)的基本操作及C语言实现
逻辑结构上一个挨一个的数据,在实际存储时,并没有像顺序表那样也相互紧挨着.恰恰相反,数据随机分布在内存中的各个位置,这种存储结构称为线性表的链式存储. 由于分散存储,为了能够体现出数据元素之间的逻辑关 ...
- 续上文----线性表之单链表(C实现)
本文绪上文线性表之顺序表(C实现) 本文将继续使用单链表实现线性表的另外一种存储结构.这种使用链表实现的存储结构在内存中是不连续的. C实现代码如下: #include<stdio.h> ...
- 线性表 (单链表、循环链表-python实现)
一.线性表 线性表的定义: 线性表是具有相同数据类型的有限数据的序列. 线性表的特点: 出了第一个元素外,每个元素有且仅有一个直接前驱,除最后一个元素外有且只有一个后继. 线性表是一种逻辑结构,表示元 ...
- Java数据结构-线性表之单链表LinkedList
线性表的链式存储结构,也称之为链式表,链表:链表的存储单元能够连续也能够不连续. 链表中的节点包括数据域和指针域.数据域为存储数据元素信息的域,指针域为存储直接后继位置(一般称为指针)的域. 注意一个 ...
- 数据结构(java版)学习笔记(三)——线性表之单链表
单链表的优点: 长度不固定,可以任意增删. 单链表的缺点: 存储密度小,因为每个数据元素,都需要额外存储一个指向下一元素的指针(双链表则需要两个指针). 要访问特定元素,只能从链表头开始,遍历到该元素 ...
随机推荐
- javascript正则表达式---正向预查
什么是正向预查?这里有腾讯招聘的一个例子: 如何给一串数字用千分制表示?比如9999999999变成9,999,999,999.这样一个问题你会怎么答呢?博主js正则学的不咋样,然后用操作字符串的办法 ...
- 译:Spring Boot 自动伸缩
原文链接:https://dzone.com/articles/spring-boot-autoscaler 作者:Piotr Mińkowski 译者:helloworldtang 自动伸缩是每个人 ...
- [luogu3388][割点]
题目链接 思路 真板子题.割点是指在一个无向图中,删去之后图将不再连通的点.可以用tarjan算法求.根据割点有两种情况,一种是根,一种是非根.如果不是根的就去判断在tarjan的时候当前节点所能到的 ...
- 第三篇-ubuntu18.04下截图快捷键
ubuntu自带的截图工具感觉能够满足基本的截图功能,可以不必安装另外的截图软件. 一般用到的截图类型有三种:全屏.当前活动窗口.自定义区域,其中自定义区域截图是最灵活也是我们用的最多的方式.在ubu ...
- django基于存储在前端的token用户认证
一.前提 首先是这个代码基于前后端分离的API,我们用了django的framework模块,帮助我们快速的编写restful规则的接口 前端token原理: 把(token=加密后的字符串,key= ...
- 截取 还没有读的txt章节 生成新的文件
package file; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; imp ...
- linux基本
一.初识 Linux与windows相比的优点是:长期稳定的运行,避免了因为系统的问题导致的项目运行中断:占用资源少:开源软件多. Centos(Community Enterprise Operat ...
- C++: typedef与template的配合使用;
利用STL的vector能够实现多维矩阵,但是写起来不怎么好看,使用typedef定位为 固定的格式: //多维矩形,vector实现: template<class T> class i ...
- 利用salt搭建hadoop集群
自动化工具有很多..今天总结一下salt安装hadoop 步骤,学习过程. 1,机器列表 hosts文件 只需要将namenode的两台机器上配置 ,不解释了. 2.salt-master在10 ...
- Ubuntu 开启SSH服务以及有关设置:安装,指定端口号、免密登录、远程拷贝
本文所用系统为 Ubuntu 18.04 什么是SSH? 简单说,SSH是一种网络协议,用于计算机之间的加密登录.全名为:安全外壳协议.为Secure Shell的缩写.SSH为建立在应用 ...