数据结构-基础

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

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

相关推荐
wuyk5558 小时前
3.链表:用指针串联的动态数据结构
c语言·开发语言·数据结构·链表
郝学胜-神的一滴8 小时前
干货版《算法导论》17:二叉树核心原理、遍历逻辑与高阶实操全解
数据结构·c++·python·算法·计算机·编程
疯狂打码的少年9 小时前
【数据结构】二叉树的性质(五大性质+计算)
数据结构·笔记·算法
wabs66610 小时前
关于图论【A*算法 | 卡码网127.骑士的攻击的思考】
数据结构·算法·图论·卡码网·广搜的改进版
凉茶钱10 小时前
【数据结构】堆的应用
c语言·数据结构
间歇性努力持续性发呆的野生快乐选手11 小时前
栈的性质(进栈,出栈,访问)
数据结构·c++
m0_5474866611 小时前
《数据结构与算法》全套PPT课件2026(中国海洋大学)
数据结构·算法
旖旎夜光11 小时前
LeetCode 904:水果成篮(滑动窗口) —— 题解
数据结构·c++·算法·leetcode·滑动窗口
我变成萤火虫13 小时前
河南萌新联赛2026第(三)场:郑州轻工业大学
数据结构·c++·算法·贪心算法·stl·深度优先·哈希算法
白狐_79814 小时前
408数据结构第7章:B树①——基础概念与结构
数据结构·b树