数据结构-基础

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)。

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

相关推荐
666HZ6664 小时前
数据结构2.0 线性表
c语言·数据结构·算法
余瑜鱼鱼鱼5 小时前
Java数据结构:从入门到精通(十二)
数据结构
一叶知秋069 小时前
数据结构-什么是队列?
数据结构·队列
Jasmine_llq9 小时前
《CF280C Game on Tree》
数据结构·算法·邻接表·深度优先搜索(dfs)·树的遍历 + 线性累加统计
zhongvv10 小时前
对单片机C语言指针的一些理解
c语言·数据结构·单片机·指针·汇编语言
im_AMBER10 小时前
Leetcode 102 反转链表
数据结构·c++·学习·算法·leetcode·链表
Xの哲學10 小时前
深入剖析Linux文件系统数据结构实现机制
linux·运维·网络·数据结构·算法
C雨后彩虹11 小时前
竖直四子棋
java·数据结构·算法·华为·面试
荒诞硬汉12 小时前
对象数组.
java·数据结构
散峰而望12 小时前
【算法竞赛】栈和 stack
开发语言·数据结构·c++·算法·leetcode·github·推荐算法