数据结构概述

数据结构概述

1、为什么要学习数据结构

(1)数据结构是所有计算机专业的同学必学的课程;

(2)数据结构研究的是数据如何在计算机中进行组织和存储的,使得我们可以高效的获取数据或者修改数据;

 

2、数据结构分类

(1)线性结构

       数组;栈;

 

       队列;链表;

 

       哈希表……

(2)树结构

       二叉树;二分搜索树;

 

       AVL;红黑树

      

       Treap;Splay;

 

       堆;Trie;

 

       线段树;K-D树;

 

       并查集;哈夫曼树……

 

(3)图结构

       邻接矩阵;邻接表;

我们需要根据不同的应用,灵活选择最合适的数据结构

 

3、计算机世界里,数据结构无处不在

(1)数据库场景

数据库底层是通过很多数据结构制作而成的,数据库主要目的就是用来存储数据的。

(2)操作系统场景

操作系统底层也是通过很多数据结构制作而成的。

系统栈:递归调用就需要借助系统栈空间。

堆:主要用于组建优先队列数据结构,通过比较优先队列优先级来进行多任务切换。

操作系统支持快速在多任务间切换

(3)文件压缩场景

简单的压缩算法可以使用哈夫曼树数据结构,但是下面文件格式并不是全部使用哈夫曼树数据结构。

(4)通讯录场景

通讯录产品:微软当时的一款使用链表数据结构来存储联系人,但是当联系人数量越来越大的时候,查询联系人是非常缓慢的。后来这个问题被微软一个实习生解决了,他使用了一种Trie-前缀树数据结构来解决的。不管你的通讯录数量有多大,查询联系人都是毫秒级别的。

(5)游戏场景

DFS:深度优先算法;

BFS:广度优先算法;

数据结构 + 算法 = 程序

4、常用数据结构学习

 

(1)面向面试数据结构

       数组;栈;队列;链表;二分搜索树;堆;

(2)面向竞赛数据结构

       线段树;Trie;并查集;

(3)世界性的计算机题库网站

       https://leetcode.com/

后面章节笔记主要内容:

  1. 递归;调试;简单的复杂度分析;
  2. 底层实现;创建自己的小型数据库;
  3. 数据结构的优化和比较;

 

如果感兴趣的童鞋,可以观看我下一篇博客:学习数据结构(和算法)到底有没有用?

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值