C语言内建数据结构类型

整型

整型数据是最基本的数据类型,不过从整形出发衍生出好几种integer-like数据结构,譬如字符型,短整型,整型,长整型。他们都是最基本的方式来组织的数据结构,一般是几位bytes,首个bit也许是符号位,剩下的(从大小端)读出来作为数值。

浮点型
指针型

[========]

C语言聚合数据结构类型

数组
数组名字

数组名字在两种情况下是作为非第一个成员的指针常量,这里的两个情况是取数组名的地址:这是取数组的地址,不是取第一个成员的地址,第二个情况是sizeof的操作,这个操作是计算这个数组的总大小,而不是第一个成员的。
PS:指针的加法运算是需要按照指针指向的数据类型来递加。

下标引用和间接访问对比
作为实参传递和作为形参声明
初始化
长度计算
结构体
联合
枚举
链表

链表是许多更加高级的数据结构的基础,链表是一串链条似的结构体节点通过指针的方式链接起来,链表有分为单向链表和双向链表。
链表有个一个head node,有一个cursor。这个链表最大的问题在于每次检索node或者node里面的具体member,都是从head node开始逐一retrieve的。

初始化
索引
插入和追加

单向链表:

  1. 对于链表的插入,一种方式是采用常规的pervious/next node points的方式来breakup,再手拉手牵起来。
  2. 另一种方式是巧妙的使用指向指针的指针来实现,非常巧妙,以遇到指针的指针的时候要特别注意,在**linkp传递过来之后,*linkp只是一个新产生的临时变量
    双向链表:
    一种是规则串联的双向链表,还有无法规则串联起来(混乱的)双向链表。
    "Pointers on C"这本书对于链表的讲解不是很详细,书中提到的的链表需要注意的是链表尾部需要及时判断,需要插入的书在链表头或者尾该怎么处理。

    修改
    删除
    排序和销毁

    真正理解这个概念可以参考Linux开发基础篇,这个在Linux里面是重要基础知识
    [========]

[========]

C语言抽象数据结构

队列

常用的是队列,这个在网络编程中常常用作收发包buffer的实现。实现队列的方式主要有静态数组,动态数组和链表,尤其是以链表为常用。

[========]

数据属性

这是一好的数据结构,这离得人们都说这个数据结构是好的。

1. C语言中的数据结构.md的更多相关文章

  1. R 语言中的数据结构

    基本数据类型 6种 numaric  如 12, 12.4 integer  如 2L,0L complex  包含实数和虚数 如 3+2i character  要用双引号或者单引号包括起来 如 & ...

  2. R语言中数据结构

    R语言还是有点古老感觉,数据结构没有Python中那么好用.以下简单总结一下R语言中经常使用的几个数据结构. 向量: R中的向量能够理解为一维的数组,每一个元素的mode必须同样,能够用c(x:y)进 ...

  3. R语言中的几种数据结构

    R语言中的几种数据结构 一  R中对象的5种基本类型 字符(character) 整数 (integer) 复数(complex) 逻辑(logical:True/False) 数值(numeric: ...

  4. 在C语言中利用PCRE实现正则表达式

    1. PCRE简介 2. 正则表达式定义 3. PCRE正则表达式的定义 4. PCRE的函数简介 5. 使用PCRE在C语言中实现正则表达式的解析 6. PCRE函数在C语言中的使用小例子 1. P ...

  5. C语言中的栈和堆

    原文出处<http://blog.csdn.net/xiayufeng520/article/details/45956305#t0> 栈内存由编译器分配和释放,堆内存由程序分配和释放. ...

  6. Python 中的数据结构总结(一)

    Python 中的数据结构 “数据结构”这个词大家肯定都不陌生,高级程序语言有两个核心,一个是算法,另一个就是数据结构.不管是c语言系列中的数组.链表.树和图,还是java中的各种map,随便抽出一个 ...

  7. go 语言中常用的包

    来自学习go语言.pdf 译者刑星 ==== fmt 包fmt实现了格式化IO函数,这与c的printf和scanf类似,格式化短语派生于c %v 默认格式的值.当打印结构时,加号(%+v)会增加字段 ...

  8. C语言中的回调函数(Callback Function)

    1 定义和使用场合 回调函数是指 使用者自己定义一个函数,实现这个函数的程序内容,然后把这个函数(入口地址)作为参数传入别人(或系统)的函数中,由别人(或系统)的函数在运行时来调用的函数.函数是你实现 ...

  9. C语言中的堆与栈20160604

    首先声明这里说的是C语言中的堆与栈,并不是数据结构中的!一.前言介绍:C语言程序经过编译连接后形成编译.连接后形成的二进制映像文件是静态区域由代码段和数据段(由二部分部分组成:只读数据 段,未初始化数 ...

随机推荐

  1. 4,4s屏幕过渡页处理

    //#import "sys/utsname.h" struct utsname systemInfo; uname(&systemInfo); NSString *dev ...

  2. PC管理端与评委云打分配合步骤及疑难问题汇编,即如何使用PC管理端的云服务管理功能

    一.前期环境及数据准备 A.PC管理端主要流程 1.进入菜单 编辑/选项/服务器 界面,如下图所示,采用我官方所提供的云服务,不采用自己假设的AppWeb服务. 切记:AppWeb服务和云服务只能二选 ...

  3. 最新版ssh hibernate spring struts2环境搭建

    最新版ssh hibernate spring struts2环境搭建 最新版spring Framework下载地址:spring4.0.0RELEASE环境搭建 http://repo.sprin ...

  4. Web页面中5种超酷的Hover效果

    hover 效果能给网页增加一些动态效果,并且使得站点更具有活力.原来的做法是使用javascript来实现这些动态效果,但是随着CSS3的引入和现代浏览器 的支持,我们可以用纯粹的CSS代码来实现这 ...

  5. 2.5 C#的数据类型

    在我们定义变量的时候需要使用数据类型,不同数据类型定义的变量,它的值的表现形式不同.比如整型主要表示整数,浮点型表示小数等等. C#中的数据类型有很多同C语言的相同,先学习一些简单的数据类型,其他的以 ...

  6. PeopleSoft Rich Text Boxes上定制Tool Bars

      在使用PT8.50或在8.51时,你可能遇到过Rich-text编辑框.该插件使你能够格式化文本,添加颜色.链接.图片等等.下面是效果图: 如果页面中只有这么一个字段,该文本框就会有足够的空间来容 ...

  7. How to add taxonomy element to a summary view?

    [re: Orchard CMS] This caused me scratching my head for days and now I can even feel it's bleeding. ...

  8. opencv的学习笔记5

    总结原博文中的一些边缘检测算子和滤波器.(Canny算子,  Sobel算子,  Laplace算子以及Scharr滤波器) 首先,一般的边缘检测包括三个步骤: 1)滤波:边缘检测的算法主要是基于图像 ...

  9. 理解timestamp

    大多数资料都说timestamp表示自从1970-1-1 00:00:00开始到现在的秒数,一般称为epoch time,却忽略了时区的概念.其实,不同时区记录timesamp的基准时间是不一样的,比 ...

  10. SQL2008代理作业出现错误: c001f011维护计划创建失败的解决方法

    SQL2008数据库总会出现从 IClassFactory 为 CLSID 为 {17BCA6E8-A95D-497E-B2F9-AF6AA475916F} 的 COM 组件创建实例失败,原因是出现以 ...