静态单链表的实现

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码优点难以消化,需要多看!这里重写create函数,有点巧妙…一时间消化不了…

在这里插入图片描述

小结

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
动态链表实现: ```c #include <stdio.h> #include <stdlib.h> typedef struct Node { int data; struct Node* next; } Node; typedef struct { Node* head; } LinkedList; int LENGTH(LinkedList* L) { int len = 0; Node* p = L->head->next; while (p != NULL) { len++; p = p->next; } L->head->data = len; return len; } int main() { LinkedList L; L.head = (Node*)malloc(sizeof(Node)); L.head->data = 0; // 初始化头结点的数据域为0 L.head->next = NULL; Node* p = L.head; // 尾插法创建链表 for (int i = 1; i <= 5; i++) { Node* node = (Node*)malloc(sizeof(Node)); node->data = i; node->next = NULL; p->next = node; p = node; } printf("链表长度为:%d\n", LENGTH(&L)); printf("头结点的数据域为:%d\n", L.head->data); return 0; } ``` 静态链表实现: ```c #include <stdio.h> #include <stdlib.h> #define MAXSIZE 100 typedef struct { int data; int next; } Node; typedef struct { Node nodes[MAXSIZE]; int head; } LinkedList; int LENGTH(LinkedList* L) { int len = 0; int p = L->head; while (p != -1) { len++; p = L->nodes[p].next; } L->nodes[0].data = len; return len; } int main() { LinkedList L; L.head = 1; // 初始化静态链表 for (int i = 1; i < MAXSIZE; i++) { L.nodes[i].next = i + 1; } L.nodes[MAXSIZE - 1].next = -1; // 最后一个结点的next为-1 L.nodes[0].data = 0; // 初始化头结点的数据域为0 int p = L.head; // 尾插法创建链表 for (int i = 1; i <= 5; i++) { L.nodes[p].data = i; p = L.nodes[p].next; } printf("链表长度为:%d\n", LENGTH(&L)); printf("头结点的数据域为:%d\n", L.nodes[0].data); return 0; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值