数据结构
文章平均质量分 65
Bǔ小磊
即使慢,驰而不息,纵会落后,纵会失败,但一定可以达到他所向的目标!
展开
-
链表性能对比
程序知道的只有第1个结点的内存地址,要找到索引2的结点(即第3个),程序必须先读取索引0的链,然后顺着该链去找索引1。接着再读取索引1的链,去找索引2,这才能读取到索引2里的值。由于插入动作创建了一个新的结点,如下图那样改动"blue"和"purple"的链,因此实际的操作只需1步。但是,在该动作之前,计算机还得先找到索引1的结点("blue"),让结点1的链指向新的结点。假设现在要删除刚才例子的索引2的值("purple"),计算机就会找出索引1的结点,将其链指向"green"结点。原创 2024-09-13 19:27:16 · 927 阅读 · 0 评论 -
数据结构-链表
像数组一样,链表也用来表示一系列的元素。事实上,能用数组来做的事情,一般也可以用链表来做。然而,链表的实现跟数组是不一样的,在不同场景它们会有不同的性能表现。计算机的内存就像一大堆格子,每格都可以用来保存比特形式的数据。当要创建数组时,程序会在内存中找出一组连续的空格子,给它们起个名字,以便你的应用存放数据,见下图。计算机能够直接跳到数组的某一索引上。如果代码要求它读取索引4的值,那么计算机只需一步就可以完成任务。原创 2024-08-18 09:04:03 · 451 阅读 · 0 评论 -
数据结构-递归
递归简单实现及如何阅读递归代码原创 2024-08-05 18:50:17 · 866 阅读 · 0 评论 -
数据结构-队列
套用到队列上,就是首先加入队列的,将会首先从队列移出。队列对于临时数据的处理也十分有趣,它跟栈一样都是有约束条件的数组。目前为止,队列表现得还跟栈一样,但要是移除数据的话,就会跟栈反着来了,因为队列是从开头移除数据的。首先,插入5(虽然栈的插入就叫压栈,但队列的插入却没有固定的叫法,一般可以叫放入、加入、入队)。与栈类似,队列也有3个限制(但内容不同)。想移除数据,得先从5开始,因为开头就是它。❏ 只能移除开头的数据(这也跟栈相反)。❏ 只能读取开头的数据(这跟栈相反)。这样一来,队列就只剩下100了。原创 2024-08-01 20:30:00 · 232 阅读 · 0 评论 -
数据结构-栈
你可以将栈看成一叠碟子:你只能看到最顶端那只碟子的碟面,其他都看不到。另外,要加碟子只能往上加,不能往中间塞,要拿碟子只能从上面拿,不能从中间拿(至少你不应该这么做)。绝大部分计算机科学家都把栈的末尾称为栈顶,把栈的开头称为栈底。注意,每次压栈都是把数据加到栈顶(也就是栈的末尾)。如果想把0插入到栈底或中间,那是不允许的,因为这就是栈的特性:只能在末尾插入数据。这也是栈的限制:只能移除末尾的数据。栈存储数据的方式跟数组一样,都是将元素排成一行。这没什么特别的,就如往数组插入数据一样平常。原创 2024-07-31 21:45:00 · 290 阅读 · 0 评论