:数据结构为什么要分栈、队列等?
发布网友
发布时间:2022-04-30 07:04
我来回答
共1个回答
热心网友
时间:2022-04-14 14:23
不要复杂化数据结构,本质上,数据结构都是为了不同的数据组织方式、存取方式和使用用途定义的一些常用结构体(类)和方法(类方法),数据结构是一种指导思想而已,当然stl、atl、boost库里面有现成写好的
队列一般是先进先出,类似排队,用途很和排队也一样,缓存数据,等cpu或者某些线程有空再处理,先来的先处理
栈是个杯子,但是里面的数据是固体,先放进去的你是拿不到的,只能把上面的那些后来的拿出来用了之后再拿下面的。栈很少用,初学者可以试试做个简单的四则运算计算器,因为有括号运算级的原因,就会用到栈
树是按照某种顺序(一般是大小,广义的大小,字符串也能比较)保存数据,快速查找读取,但是插入和删除操作很慢很麻烦,树有很多拓展,红黑树、平衡树等等。
链表有点像数组,但是链表很灵活,大小不是固定的、内存块不是连续的,方便随时删除某些数据或者插入一些新的数据
图太复杂了,图可以看做一张网,每个数据都是节点,每个节点都可能连接其他所有节点,像不像地图?这种结构一般用在寻路算法(游戏,地图导航)
当然如果你不在意速度,这所有的东西都可以用数组和你自己写的一些调用方法完成,初学者建议把数据结构自己实现一遍