博客
关于我
链表学习:静态链表
阅读量:729 次
发布时间:2019-03-21

本文共 1390 字,大约阅读时间需要 4 分钟。

链表概念

链表由一系列节点组成,每个节点包含两个域:数据域用于存储数据,指针域用于存储指向下一个节点的地址。在内存中,链表存储是非连续的。 例如: ```struct LinkNode{ int age; struct LinkNode* next; }```链表相比数组的主要优点是插入和删除操作效率高,但随机访问单个节点效率相对较低。

链表分类

链表可以分为以下几种: - 静态链表:节点数量和大小在编译时确定 - 动态链表:节点数量和大小在运行时动态扩展或缩减

链表还可以分为单向链表、双向链表和循环链表等形式。常见的链表结构包括:

  • 单向链表( Establishhd singly linked list, 简单链表)
  • 双向链表( doubly linked list, 双向链表)
  • 循环链表( circular linked list, 循环链表)
  • 单向循环链表( singly circular linked list, 单向循环链表)

链表与数组的主要区别

- **数组**:一次分配一块连续的存储空间。在使用时需要通过索引访问,随机访问效率高。 - **链表**:按需分配存储空间,只需将指针指向下一个节点即可,插入和删除操作效率高,但随机访问效率较低。

数组的优缺点:

  • 需要一次分配连续的内存区域,可能导致内存不足
  • 删除和插入元素效率低
  • 链表的优缺点:

  • 不需要一次性分配连续内存
  • 删除和插入元素效率高
  • 随机访问效率低
  • 静态链表的使用示例

    以下是静态链表的简单实现:
    #include 
    struct LinkNode{ int data; struct LinkNode* next; }; void test(){ struct LinkNode node1 = {10, NULL}; struct LinkNode node2 = {20, NULL}; struct LinkNode node3 = {30, NULL}; struct LinkNode node4 = {40, NULL}; struct LinkNode node5 = {50, NULL}; struct LinkNode node6 = {60, NULL}; node1.next = &node2; node2.next = &node3; node3.next = &node4; node4.next = &node5; node5.next = &node6; // 遍历链表 struct LinkNode* pCurrent = &node1; while (pCurrent != NULL) { printf("%d ", pCurrent->data); pCurrent = pCurrent->next; } } int main(){ test(); return 0; }

    注意事项:

    • 类似于数组的静态链表在最坏情况下可能会导致栈溢出或内储不足。
    • 对于更复杂的链表操作,建议使用动态链表。

    转载地址:http://vwlgz.baihongyu.com/

    你可能感兴趣的文章
    php-fpm与Nginx运行常见错误说明
    查看>>
    php-fpm比php成为apache模块好在哪
    查看>>
    php-fpm超时时间设置request_terminate_timeout分析
    查看>>
    php-fpm进程数优化
    查看>>
    PHP-GD库-分类整理
    查看>>
    php-laravel框架用户验证(Auth)模块解析(一)
    查看>>
    php-laravel框架用户验证(Auth)模块解析(三)登录模块
    查看>>
    php-laravel框架用户验证(Auth)模块解析(二)注册模块
    查看>>
    php-laravel框架用户验证(Auth)模块解析(四)忘记密码
    查看>>
    php-redis中文参考手册_Ping_echo_set_get_setex_psetex_...
    查看>>
    Redis使用不当导致应用卡死
    查看>>
    PHP-Shopify-API-Wrapper 使用教程
    查看>>
    php-兔子问题,斐波那契数列
    查看>>
    PHP-希尔排序
    查看>>
    PHP-快速排序的2种实现方法
    查看>>
    Redis使用lua脚本
    查看>>
    php-数据结构-二叉树的构建、前序遍历,中序遍历,后序遍历,查找,打印
    查看>>
    php-有序数组合并后仍有序
    查看>>
    redis使用
    查看>>
    Redis以及Redis的php扩展安装
    查看>>