C语言学习016:单链表
#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:单链表的更多相关文章
- c++学习笔记—单链表基本操作的实现
用c++语言实现的单链表基本操作,包括单链表的创建(包括头插法和尾插法建表).结点的查找.删除.排序.打印输出.逆置.链表销毁等基本操作. IDE:vs2013 具体实现代码如下: #include ...
- Linux 底下使用C语言的 单链表 ,双链表,二叉树 读取文件,并排序
直接上代码 单链表Linux读文件排序: 双链表Linux读取文件排序: 二叉树LinuX读取文件并排序:
- C语言实现的单链表
链表是一种线性表,但是并不是顺序存储,而是每个节点里面存储着下一个节点的指针,把存储数据元素的数据串链起来. 单链表的基本实现: typedef int DataType;//定义单链表typedef ...
- C++ 数据结构学习二(单链表)
模板类 //LinkList.h 单链表#ifndef LINK_LIST_HXX#define LINK_LIST_HXX#include <iostream>using namespa ...
- C语言 - 栈和单链表的实现
单链表:linkList.h linkList.c #ifndef LINKLIST_H_INCLUDE #define LINKLIST_H_INCLUDE #include <Windows ...
- C语言版本:单链表的实现(优化版本)
未优化版本:http://www.cnblogs.com/duwenxing/p/7569376.html slist.h #ifndef __SLIST_H__ #define __SLIST_H_ ...
- C语言版本:单链表的实现
slist.h #ifndef __SLIST_H__ #define __SLIST_H__ #include<cstdio> #include<malloc.h> #inc ...
- c++学习之单链表以及常用的操作
新学数据结构,上我写的代码. #include <iostream> #include <cstdlib> using namespace std; typedef int E ...
- c语言实现循环单链表
//初始化 Node*InitList() { Node*head=(Node*)malloc(sizeof(Node)); head->next=NULL; head->data=-1; ...
随机推荐
- Silverlight中文本框添加回车事件后,换行无法清除的解决方法
在开发Silverlight的项目中,为了更好的用户体验,我们常要给一些控件添加一些快捷键.然而,在Silverlight中当用户回车提交后,光标停留在文本框的第二行怎么也清除不掉,经过一段时间研究, ...
- 解如下方程(java实现)
n (m=1) f(m,n)= m (n=1) f(m-1,n)+f(m,n-1) ...
- zendframework 2 链接数据库
相对于zf1,来说,zf2让我们对于数据库这方面的操作我的个人感觉是对于字段起别名简单了,但是对数据库的操作虽然配置写好的就基本不需要动了,但是还是比1的配置要繁琐, 还是那句话,大家可以去看看源码. ...
- Flash AS实现时钟效果(全脚本实现)
最近工作中用到个Flash效果,好久没有写FlashAS脚本了,就想从以前写的代码中找一些实例.竟然看到硬盘中还留有若干年前的代码. 这个时钟效果是全部采用脚本实现,图形也是用脚本绘制的.写于2005 ...
- 翻译:AKKA笔记 - Actor消息 -1(二)
消息 我们只是让QuoteRequest到ActorRef去但是我们根本没见过消息类! 它是这样的: (一个最佳实践是把你的消息类包装在一个完整的对象里以利于更好的组织) TeacherProtoco ...
- 如何对Redis设置密码,提高安全性
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/93.html?1455871461 Redis作为一个高速内存键值对(K ...
- Java程序员的日常 —— 多进程开发IO阻塞问题
本篇仍旧是源于最近的工作,总结一下纪念那些年埋下的坑... 背景故事 需求:"使用进程方式启动另一个程序!" 开发:"OK! Runtime.getRuntime().e ...
- Atitit 类库冲突解决方案 httpclient-4.5.2.jar
Atitit 类库冲突解决方案 httpclient-4.5.2.jar 错误提示如下1 版本如下(client and selenium)2 解决流程2 挂载源码 (SSLConnectionSo ...
- java之设计模式
一.代理模式 a.抽象角色(接口):声明真实对象和代理对象的共同接口 b.代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能替 ...
- [BUG集] android 安卓项目中ORMLITE框架 Must specify one of id, generatedId, and generatedIdSequence with Id
使用ORM框架ORMLITE有一段时间,今天在操作一个对象的时候,重新运行报错如下: Must specify one of id, generatedId, and generatedIdSeque ...