数据结构-基础

1、概念:

程序 == 数据结构 + 算法

2、程序的好坏

可读性,稳定性,扩展性,时间复杂度,空间复杂度。

3、数据结构

是指存储、组织数据的方式,以便高效地进行访问和修改。通过选择适当的数据结构,

能够优化计算机程序的时间和空间效率。

4、分类

逻辑结构

线性结构(表),非线性结构(树,图)

存储结构

顺序存储,链式存储,索引存储,散列存储

5、数据结构:

顺序表

链表

顺序栈

链式栈

队列

哈希表等

6、顺序表

1、定义类型

7、工程代码目录结构

1、main.c :主函数程序代码

2、fun.c :功能程序代码

3、fun.h : 工程程序代码头文件

8、gdb调试工具

l 查看代码

b 行号/函数名 设置断点

r 运行代码

n 单步执行

s 进入函数内部调试

p 变量名 查看变量内容

q 退出调试

9、链表

链表(Linked List)是一种常见的数据结构,用于存储一系列数据元素。与数组不同,链表

中的元素不是在连续的内存位置上存储,而是通过指针将每个元素链接到下一个元素

链表的基本结构

链表由一系列节点(Node)组成,每个节点包含两个部分:

数据部分:存储实际的数据。

指针部分:存储指向下一个节点的地址(在单链表中),或在双向链表中指向前一个

和下一个节点的地址。

单向链表(Singly Linked List)

每个节点只包含一个指向下一个节点的指针。只有一个方向可以遍历链表。

链表的优缺点

优点:

动态大小:链表的大小是动态的,不像数组需要预先确定大小。

高效插入和删除:在链表中插入或删除元素时,无需移动其他元素,尤其是当

在链表的头部或尾部插入时,操作非常高效(O(1)时间复杂度)。

缺点:

访问效率较低:访问链表中的某个元素需要从头节点开始逐一遍历,时间复

杂、 度为O(n),相比之下,数组的访问是O(1)。

额外的内存消耗:每个节点需要额外存储指针,相比数组,需要更多的内存。

相关推荐
CSharp精选营3 天前
关系型 vs 非关系型:从原理到选型,一文搞定数据库核心分类
数据结构·nosql·关系型数据库·非关系型数据库·技术选型
刘马想放假7 天前
Modbus 全栈技术解析:TCP、RTU、ASCII、RTU over TCP
数据结构·网络协议
北域码匠8 天前
冒泡排序太慢?鸡尾酒排序双向优化,原生 C# 零第三方库完整代码
数据结构·排序算法·泛型·c# 算法·鸡尾酒排序·原生 c# 开发·冒泡排序优化·嵌入式算法
Darling噜啦啦15 天前
列表转树算法深度解析:从 Map 到 Reduce 的两种实现,面试高频考点
数据结构·算法·面试
小小工匠16 天前
Redis - 事务机制:能实现 ACID 属性吗
数据结构·redis·性能优化·并发·持久化
玖玥拾16 天前
C/C++ 数据结构(七)栈、容器适配器
c语言·数据结构·c++··容器适配器
Qres82116 天前
算法复键——树状数组
数据结构·算法
牛油果子哥q16 天前
并查集(DSU)超精讲,路径压缩、按秩合并、万能模板、连通性判定、最小生成树与刷题实战全解
数据结构·c++·最小生成树·并查集
凌波粒16 天前
LeetCode--491.递增子序列(回溯算法)
数据结构·算法·leetcode
WL学习笔记16 天前
单项不带头不循环链表
数据结构·链表