#include <stdio.h>

 //定义一个链表,链表是一种递归结构,在定义的时候必须要给结构起一个名字
typedef struct folder{
int level;
char* filename;
struct folder* child;//通过指针链接下一个结构
}folder; int main(){
folder first={,"first",NULL};
folder second={,"second",NULL};
folder thread={,"thread",NULL};
first.child=&second;
second.child=&thread;
folder* i=&first;
for(;i!=NULL;i=i->child){
printf("%s level is %i \n",i->filename,i->level);
}
return ;
}

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoIAAAA2CAIAAADcVm8IAAAD+ElEQVR4nO3dUVbbRhgGUG8pdCFJ47SEwELadB2hTUrJIgKkj15CQrqTpE2x+9CHHnxcjUaaGdkaG937JI9Hn378wAfmyMyevvr87sPdo8c/zgCAkalhAKhGDQNANWoYAKpRwwBQTaOGF/fCnbH13Vls2J/8bc0z8osJwD7arOF1wbQ2zVbqpyBh1/VfpYbH/5kGgH309Pzzu4/NGt6Rsvz9nGrg5dQwALNZWg23NsfmSuyp2GJWCYWbO/JbT+m+aPowsZytfFEATNG6hns7MlY/s3gldzRlusS6zT0unipxnqwQACYq/U3pWA33tm9HQorW2tsUbguPw/3FU8Veh/SEslMAeICG1/C29ifmpHR8ys8ExVOlDFAcAsC0bL2GOypw/XBIY/Xmp+/vWNzKPOkhAEzUvO1vw409i8As0nnh/thTKbO1XjclP3GeWP4W50kPAWCK5uc+RQsAKlHDAFDN/NWXqw93jx7/UHsQAJie+bkaBoBK7t+UVsMAMLr7G5bUMACMbq6GAaCWZ+dfrvajhstuvd3pJFn5w+dxMzHA5Dz7+c+rj/tyw1JWA+26rkau4fDzQIqjADgY3/3y1/Xt8kgNj57fcTk1DDAV37/+en27PHrycpb//3Sz1hf/F9s/pIY7rtt6SvdF04fJfX0SA7NOAeAgHb/+en27OnryMlZXtY57JdZt8XVzuzBxntwcAB6y4zd/39yuvvn2p1nC/0VIqZa6Ndw9Z3gc7o/l585TkFB2CgAH7PjN3bqG/9Nab+GJ+1nDZfOk5OfOU5CjgwEm5/l9DW+rPvehhlufSt9fMEzWPL2n62OAqXj+613jTemwA7aynlKT4VOtFoHueWKxKfPvaJ70EAAess0aBgBGpYYBoJqTCzUMAJWcXCxvPqlhAKhBDQNANWoYAKo5uVjefPpHDQNABS/6ani021jLbrHd6SRZ+cPncdMwwOS8+G35fqOGWwtgtGLIutCupxq5hsPP/SiOAuBgbNZw7Lu/Gh6ZGgaYinUNLwLrPeuH4W9s4fos7UMiY+tDarh7+PQ5Y/ndk6R/vYmBWacAcJDSfxsOG7ex2LGhNbD7uFdi3eYex/K3NU9KiA4GmIrcN6XD40b7LgKNnMZ6WV2Fm2PX7R0+1ny5dRjuz00YfiIAB+Z0cA13bM4NGV7DA4fvyM+dpzin7BQADlJrDXc0XFYNDznulTjk+mH6/oJhsubpPV0NA0zFaXDDUqzDNh/OIt3WOKXx1OZimBmuxywC3deNxfbOGUsbPk9vTsp+AA5eo4YBgPGcXqphAKjk7HKlhgGgjrPL1fs/1DAA1HB2ufpdDQNAFWdv1TAAVKKGAaAaNQwAtfwL7MC8NUvd8rEAAAAASUVORK5CYII=" alt="" />

  在链表中插入值,只需要修改指针的值就行

    second.child=&thread;
folder fourth={,"fourth",NULL};

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAAzCAIAAACIbi6GAAAEGklEQVR4nO3dMY8bRRgG4P0FASFR0NAgQVAkogsVDRXNoYhDoqGio6OhQAJ+xl2EhERDg8QFRQKfaGhMQUMSuJPSUNFR0VAg5agoDNbmZnd2Zmzv2N7nqdbr2W9eX5H3nHidZnZ+eXD0SQMAjGl2fnlw9HHtFAAwMbPzxwoYAMamgAGgAgUMABW0C3j+v3BZ3/nNmbdsz/x15Rn5hwnA1ll+CGtZLZ0ds5biKZiw6eKvUsDj/zYDwNaZXfx3G9K2Vd0qV23P/M7tFDAAzdnF5a1oAXd2RvtM31N9J7PqJ1wcmd95SXzT9DB9c9byogCYnLOLf269/elgO/YVT9NfxpGOTJdYtLnHxakS82QNAWCKFgXcDLVCXwEP9m5kQorOwmsLl4XH4friVH0/h/QJZZcAsG/O0v4NOLd41lJU4VUp7Z7y20BxqpQAxUMAmJDZr48P3nriU9CdEgs1Un7Lh6t01eD89PWRk2vJkz4EgCn69uHfr9z+qLO9FuaBpqftwvV9T6UE69w3ZX5inr75a8yTPgSAybn38183Dj+snQIAJub0pz+vv/FB7RQAMDFf/fjHC6+/XzsFAEzMlz/8/vxr79VOAQAT88X3vz336ru1UwDAxHz+3aNnb75TOwUATMxn986fuXFUOwUATMydb355+uXbtVNk3CK86Ztoy+avnsfNwQDTcnL3wVPX36ydomm27NscRy7g8Js9ikcBsBuOT+9fe+mwdoqm2fECXuN2ChhgEo6/vn/txcMm//+7zTo/f1Lf+lUKOLJv5yXxTdPD5P58EgdmXQLA7lkUcF9R1ToelFi0xfvmtmBintw5AOytK++Arzw7D7TPh9PqFnA8Z3gcru+bn5unYELZJQDsqmUBL3QWW3jVdhZwWZ6U+bl5CuZoX4BpOT7d57+CXj5MX18QJivP4OWaGGASFgXcjPIhrPC4vT58qtM8EM/TNzYl/4bypA8BYG8tCxgAGI8CBoAKThQwAIzv5PSBAgaAsSlgAKhAAQNABQoYACpoF/D4N6EW7Ljpm2XL5q8xj/uAASZhWcDLP/c32m2dJwu223RL1SpgX8QBMBVhAW9I3/z9KOA1bqqAASZhsIA7W6H9MDwO30nPA+GorOIJF2fl7FsfmR9PkphncE7W1gDssEUBD7Zj4nETFEnfsivrc7tnxZyDwXJbMDFPyuW5WwOwk+LvgIsLOCzUeAHH18Svam/a3n0wc7i+b35untwJYZ6s3QHYPSd3N1LA4UYp59OLp2DTrI1WL+CyOWWXALB7xi/gyPq1FHDnU7mbrljAZS+qbD0AO2lRwJ0ttdD3VPvklYN4B3e2Y/thPPA8EM/ZN3bwdUVeyIp5EqelXwXA7lm+AwYAxnNHAQPA+BQwAFSggAGgAgUMAOP7F8+BJ4SCeR1QAAAAAElFTkSuQmCC" alt="" />

  链表相对于数组而言,插入数据非常快,但是如果有一个很长的链表,要想访问最后一个元素,你需要从第一个开始一层一层的读下去,而数组可以通过索引直接访问元素,所以使用数组还是链表需要根据环境来决定

C语言学习016:单链表的更多相关文章

  1. c++学习笔记—单链表基本操作的实现

    用c++语言实现的单链表基本操作,包括单链表的创建(包括头插法和尾插法建表).结点的查找.删除.排序.打印输出.逆置.链表销毁等基本操作. IDE:vs2013 具体实现代码如下: #include  ...

  2. Linux 底下使用C语言的 单链表 ,双链表,二叉树 读取文件,并排序

    直接上代码 单链表Linux读文件排序: 双链表Linux读取文件排序: 二叉树LinuX读取文件并排序:

  3. C语言实现的单链表

    链表是一种线性表,但是并不是顺序存储,而是每个节点里面存储着下一个节点的指针,把存储数据元素的数据串链起来. 单链表的基本实现: typedef int DataType;//定义单链表typedef ...

  4. C++ 数据结构学习二(单链表)

    模板类 //LinkList.h 单链表#ifndef LINK_LIST_HXX#define LINK_LIST_HXX#include <iostream>using namespa ...

  5. C语言 - 栈和单链表的实现

    单链表:linkList.h linkList.c #ifndef LINKLIST_H_INCLUDE #define LINKLIST_H_INCLUDE #include <Windows ...

  6. C语言版本:单链表的实现(优化版本)

    未优化版本:http://www.cnblogs.com/duwenxing/p/7569376.html slist.h #ifndef __SLIST_H__ #define __SLIST_H_ ...

  7. C语言版本:单链表的实现

    slist.h #ifndef __SLIST_H__ #define __SLIST_H__ #include<cstdio> #include<malloc.h> #inc ...

  8. c++学习之单链表以及常用的操作

    新学数据结构,上我写的代码. #include <iostream> #include <cstdlib> using namespace std; typedef int E ...

  9. c语言实现循环单链表

    //初始化 Node*InitList() { Node*head=(Node*)malloc(sizeof(Node)); head->next=NULL; head->data=-1; ...

随机推荐

  1. WebDAV 配置及相关工具

    最近在项目中安装和调试服务器,杯具的是,服务器是内网地址,而且不可以直接SSH.SFTP,只能通过中间一台linux作为跳板,然后在SSH命令行里去操作目标机器. 如果只是命令行操作也就无所谓了,但是 ...

  2. Python--过滤Mysql慢日志

    ##================================================================## 先来个笑话: 刚交的女朋友让我去他家玩,我觉得空手不好,于是告 ...

  3. 一种集合“相等性”的实现

        最近在工作中遇到了一个小的功能,就是需要向一个服务发送请求命令,需要判断请求是否发生变化,如果发生变化了,则重新请求.该问题实际上就是判断两个集合是否相等,只需要记录最后一次请求的元素的集合, ...

  4. C#Light Everywhere

    C#语法嵌入式脚本,0.1Beta版本咯,可用于各种环境,欢迎测试. 可以解决各种热更新问题 比如Unity在AOT环境下,比如各种不能采用动态加载DLL的场合. 如果遇到bug,请给我留言,我会从速 ...

  5. 使用后台服务数据更新UI

    https://www.websmithing.com/2011/02/01/how-to-update-the-ui-in-an-android-activity-using-data-from-a ...

  6. 深度解析SDN——利益、战略、技术、实践(实战派专家力作,业内众多专家推荐)

    深度解析SDN——利益.战略.技术.实践(实战派专家力作,业内众多专家推荐) 张卫峰 编   ISBN 978-7-121-21821-7 2013年11月出版 定价:59.00元 232页 16开 ...

  7. 初了解JS设计模式,学习笔记

    什么是设计模式. 回答这个问题,往往我们得先知道我们为什么需要设计模式,正是因为有需求才会有设计模式,难道不是吗? 我们为什么需要设计模式. 如果没有按照设计模式去写,你的代码很可能是乱无肆忌写的,也 ...

  8. 【WP 8.1开发】电子罗盘

    罗盘,估计也不用我过多介绍,学过初中物理的都知道,不管是指南针,还是指北针,其本质就是用来辨别方向的. 操作电子罗盘伟感器也不复杂,主要就是两个角度: 1.当前方向与磁北的夹角: 2.当前方向与地北的 ...

  9. 深入理解javascript作用域系列第一篇——内部原理

    × 目录 [1]编译 [2]执行 [3]查询[4]嵌套[5]异常[6]原理 前面的话 javascript拥有一套设计良好的规则来存储变量,并且之后可以方便地找到这些变量,这套规则被称为作用域.作用域 ...

  10. 深入理解javascript作用域系列第四篇——块作用域

    × 目录 [1]let [2]const [3]try 前面的话 尽管函数作用域是最常见的作用域单元,也是现行大多数javascript最普遍的设计方法,但其他类型的作用域单元也是存在的,并且通过使用 ...