zoukankan      html  css  js  c++  java
  • 链表

    链表是一种常见的重要的数据结构。它是动态的进行内存分配的一种结构。

    链表由一个“头指针”变量,图中以head表示,它存放一个地址,该地址指向一个元素。链表中的每一个元素称为“结点”,每个结点都应该包含两个部分:用户需要的实际数据和下一个结点的地址。可以看出,head指向第一个元素;第一个元素又指向第二个元素......直到最后一个元素,该元素不再指向其他元素,它称为“尾表”,它的地址部分放一个"NULL"(表示”空地址“),链表到此结束。

    可以看到,链表中的各元素在内存中不是连续存放的。要找到某一元素,必须先找到上一个元素,根据它提供的下一个元素地址才能找到下一个元素。如果不提供“头指针”(head),则整个链表都无法访问。我们通过观察结点的结构可以知道,采用结构体变量来作为链表中的结点是最合适的。(可以理解为一个结构体对应一个结点)。

    链表分为静态链表和动态链表。静态链表不提。动态链表需要事先分配内存,而内存分配函数包括malloc函数和calloc函数和free函数

    malloc函数的原型为

    void *malloc (unsigned int size)

    其作用是在内存的动态存储区中分配一个长度为size的连续空间。此函数的返回值是一个指向分配域起始地址的指针(类型为void),如果未能分配成功,那么返回值为NULL(空指针)。

    calloc函数的原型为

    void *calloc (unsigned n,unsigned size)

    其作用是在内存的动态存储区中分配n个长度为size的连续空间。函数返回一个指向分配域起始地址的指针;否则,返回为NULL.
     

    free函数的原型为

    void free(void *p)

    其作用是释放由P指向的内存区。P是最近一次调用calloc或malloc函数时返回的值,free函数无返回值。

    链表的基本操作包括:建立一个链表、输出一个链表、删除一个链表、添加一个链表。

  • 相关阅读:
    SQL Server Audit监控触发器状态
    SQL Server 数据变更时间戳(timestamp)在复制中的运用
    SQL Server 更改跟踪(Chang Tracking)监控表数据
    SQL Server 变更数据捕获(CDC)监控表数据
    SQL Server 事件通知(Event notifications)
    SQL Server 堆表行存储大小(Record Size)
    SQL Server DDL触发器运用
    SQL Server 默认跟踪(Default Trace)
    SQL Server 创建数据库邮件
    SQL Server 跨网段(跨机房)FTP复制
  • 原文地址:https://www.cnblogs.com/CBDoctor/p/2318501.html
Copyright © 2011-2022 走看看