[文档整理系列] 线性链表之单链表

/*
问题描述:线性表____链表_____单链表
@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++]线性链表之单链表的更多相关文章

  1. 【Java】 大话数据结构(2) 线性表之单链表

    本文根据<大话数据结构>一书,实现了Java版的单链表. 每个结点中只包含一个指针域的链表,称为单链表. 单链表的结构如图所示: 单链表与顺序存储结构的对比: 实现程序: package ...

  2. Java数据结构和算法(一)线性结构之单链表

    Java数据结构和算法(一)线性结构之单链表 prev current next -------------- -------------- -------------- | value | next ...

  3. 线性表之单链表C++实现

    线性表之单链表 一.头文件:LinkedList.h //单链表是用一组任意的存储单元存放线性表的元素,这组单元可以是连续的也可以是不连续的,甚至可以是零散分布在内存中的任意位置. //单链表头文件 ...

  4. [数据结构 - 第3章] 线性表之单链表(C++实现)

    一.类定义 单链表类的定义如下: #ifndef SIGNALLIST_H #define SIGNALLIST_H typedef int ElemType; /* "ElemType类型 ...

  5. 数据结构5: 链表(单链表)的基本操作及C语言实现

    逻辑结构上一个挨一个的数据,在实际存储时,并没有像顺序表那样也相互紧挨着.恰恰相反,数据随机分布在内存中的各个位置,这种存储结构称为线性表的链式存储. 由于分散存储,为了能够体现出数据元素之间的逻辑关 ...

  6. 续上文----线性表之单链表(C实现)

    本文绪上文线性表之顺序表(C实现) 本文将继续使用单链表实现线性表的另外一种存储结构.这种使用链表实现的存储结构在内存中是不连续的. C实现代码如下: #include<stdio.h> ...

  7. 线性表 (单链表、循环链表-python实现)

    一.线性表 线性表的定义: 线性表是具有相同数据类型的有限数据的序列. 线性表的特点: 出了第一个元素外,每个元素有且仅有一个直接前驱,除最后一个元素外有且只有一个后继. 线性表是一种逻辑结构,表示元 ...

  8. Java数据结构-线性表之单链表LinkedList

    线性表的链式存储结构,也称之为链式表,链表:链表的存储单元能够连续也能够不连续. 链表中的节点包括数据域和指针域.数据域为存储数据元素信息的域,指针域为存储直接后继位置(一般称为指针)的域. 注意一个 ...

  9. 数据结构(java版)学习笔记(三)——线性表之单链表

    单链表的优点: 长度不固定,可以任意增删. 单链表的缺点: 存储密度小,因为每个数据元素,都需要额外存储一个指向下一元素的指针(双链表则需要两个指针). 要访问特定元素,只能从链表头开始,遍历到该元素 ...

随机推荐

  1. 牛客练习赛31 D神器大师泰兹瑞与威穆

    双链表搞完了 #include<bits/stdc++.h> using namespace std; #define maxn 1000005 int tot,bac[maxn],fa[ ...

  2. 最全面的 Spring 学习笔记

    http://www.codeceo.com/article/learn-spring.html 来源:泊浮目 分享到:更多36 Spring致力于提供一种方法管理你的业务对象.在大量Java EE的 ...

  3. 洛谷P4206 聪聪与可可

    无向简单图上给定s,t.每秒s先向t按照最短路走两步(优先节点编号较小的),然后t随机行动一步. 问期望多少秒相遇.n <= 1000 解: 这个s太蛇皮了...所以预处理一波. 然后不会,看题 ...

  4. A1011. World Cup Betting

    With the 2010 FIFA World Cup running, football fans the world over were becoming increasingly excite ...

  5. Could not install the app on the device, read the error above for details. Make sure you have an Android emulator running or a device connected and have set up your Android development environment:

    Administrator@DESKTOP-EHCTIOR MINGW64 /d/react-native-eyepetizer (master) $ react-native run-android ...

  6. Mock3 moco框架的http协议post方法Mock的实现

    新建一个 startupPost.json [ { "description":"模拟一个post请求", "request":{ &quo ...

  7. Elastic 基础篇(2)

    1.基本概念 1)Elastic和RDMS对比 RDMS Elastic 数据库database 索引index 表table 类型type 行row 文档document 列column 字段fie ...

  8. lucene的普通搜索(二)

    首先得到索引: package com.wp.util; import java.io.File; import java.io.FileReader; import java.nio.file.Pa ...

  9. C++: typedef与template的配合使用;

    利用STL的vector能够实现多维矩阵,但是写起来不怎么好看,使用typedef定位为 固定的格式: //多维矩形,vector实现: template<class T> class i ...

  10. 【Mac进销存管理软件】Daily Sales Pro Mac

        [简介] Daily Sales Mac版是Mac平台上的一款进销存软件,库存管理系统.Daily Sales Mac版是一款易于使用的进出库存管理软件,让您及时了解库存状况.销售收入.采购成 ...