#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. PPT嵌入字体的方法

    使用ppt的时候,很多时候会使用一些特殊字体,在其他计算机上无法正常显示.这个时候就需要导出PPT的时候进行字体嵌入. 1.1 常规方法 所谓常规方法,是指那些字体的许可协议允许随意分发,我们才能导出 ...

  2. 一个不陌生的JS效果-marquee,用css3来实现

    关于marquee,就不多说了,可以戳这里. 毕竟他是一个很古老的元素,现在的标准里头也不推荐使用这个标签了.但平时一些项目中会经常碰到这样的效果,每次都是重新写一遍,麻烦! JS类实现marquee ...

  3. PC远程调试移动设备

    我们在移动端进行前端开发时,会遇到一个让人头痛但不得不面对的问题——调试. 在 PC 机器上,我们有功能强大的 Chrome DevTools.Firebug,即便是老版本的 IE ,我们也可以安装微 ...

  4. 我的第一篇Markdown语法博客

    这是我的第一篇使用markdown语法编写的博客 使用的编辑器为Sublime Text2 并且使用了sublog插件, sublog是一个开源项目 sublog 并且参考了作者的博客 AmongOt ...

  5. java 堆栈分析4

    jprofiler ,又是一款好工具... —— 不过显然,我觉得有了jvisualvm就足够了,难道它会比jvisualvm还强大很多!?? 什么时候需要它呢?它有什么特别好用的地方吗? 带来什么方 ...

  6. swagger:The World's Most Popular Framework for APIs.

    swagger官网:http://swagger.io/ swagger ui demo:http://petstore.swagger.io 让API文档总是与API定义同步更新,是一件非常有价值的 ...

  7. 关于C#中的线程重启的问题

    首先不管是C#也好,还是java也好,对于已经Abort的线程是无法再次Start的,除非是声明私有变量new一个新的线程,网上也有很多人说可以Suspend挂起线程,然后再Resume继续,但是相信 ...

  8. Servlet Filter

    Filter : Java中的Filter 并不是一个标准的Servlet ,它不能处理用户请求,也不能对客户端生成响应. 主要用于对HttpServletRequest 进行预处理,也可以对Http ...

  9. php使用正则过滤js脚本代码实例

    匹配的规则不能用 "/<script.*<\/script>/i",因为它不能匹配到换行符,那么多行js就匹配不掉了. 要用 "/<script[ ...

  10. 快速入门系列--WCF--05事务

    最近开始WCF相关知识的学习,虽然实际工作中使用公司自己的一套SOA系统,但微软的一套服务架构还是具有很大的参考意义.除了WCF的一些基础使用,相对比较复杂的内容有分布式的事务和通信的安全等,不过基本 ...