zoukankan      html  css  js  c++  java
  • 1. C语言中的数据结构.md

    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的实现。实现队列的方式主要有静态数组,动态数组和链表,尤其是以链表为常用。

    树##
    图##

    [========]

    数据属性##

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

    每走一步,都是新的开始!
  • 相关阅读:
    Retrieve Excel Workbook Sheet Names
    总股本和流通股本
    Net序列化与数据压缩类
    HTTP Compression 速用方法
    市净率
    兼容FF,IE,Chrome的js离开或刷新页面检测
    【转】不能执行已释放的Script 代码
    三款在线css3样式生成工具
    不固定个数的子元素自适应居中
    收集几个浏览器好用插件工具
  • 原文地址:https://www.cnblogs.com/shafei/p/5407933.html
Copyright © 2011-2022 走看看