
数据结构与算法
文章平均质量分 71
Zzay_naw
这个作者很懒,什么都没留下…
展开
-
数据结构与算法--双向链表(Double Linked List)、单向环形链表(Circular Linked List)
此文章仅作为自己学习过程中的记录和总结,同时会有意地去用英文来做笔记,一些术语的英译不太准确,内容如有错漏也请多指教,谢谢!一、双向链表-概述-双向链表的基本组成结构:Node:自定义的结点结构。(Node) head:指向单链表头结点的“头指针”。-自定义结点的基本组成结构:数据域:存放具有实际意义的数据。“指针”域(next):存放一个指向下一结点的“指针”。“指针”域(pre):存放一个指向上一结点的“指针”。【与单链表的区别】-优点:遍历方向:单链表只能朝向一个方向原创 2021-01-22 13:16:46 · 1590 阅读 · 0 评论 -
数据结构与算法--单链表相关面试题
此文章仅作为自己学习过程中的记录和总结,同时会有意地去用英文来做笔记,一些术语的英译不太准确,内容如有错漏也请多指教,谢谢!一、概述获取单链表的有效元素个数【新浪面试题1】获取单链表倒数第k个结点【新浪面试题2】反转单链表【腾讯面试题】从尾到头打印单链表【百度面试题】合并两个有序的单链表,合并之后的链表依然有序此文章会根据以上五个问题分别给出实现代码,以及一些注意事项。在文末会给出检测代码。(关于属性、构造器、结点结构及基本方法,具体可见:数据结构与算法–单链表(Single Link原创 2021-01-19 00:31:53 · 337 阅读 · 1 评论 -
数据结构与算法--单链表(Single Linked List)
此文章仅作为自己学习过程中的记录和总结,同时会有意地去用英文来做笔记,一些术语的英译不太准确,内容如有错漏也请多指教,谢谢!一、概述-单链表的基本组成结构:Node:自定义的结点结构。(Node) head:指向单链表头结点的“头指针”。-自定义结点的基本组成结构:数据域:存放具有实际意义的数据。“指针”域(next):存放一个指向下一结点的“指针”。-内容:构造方法创建数组循环队列。add()【向单链表中添加结点】addByOrder()【向单链表中按顺序(默认升序)添原创 2021-01-18 15:51:37 · 381 阅读 · 2 评论 -
数据结构与算法--数组模拟循环队列(Circular Queue)
此文章仅作为自己学习过程中的记录和总结,同时会有意地去用英文来做笔记,一些术语的英译不太准确,内容如有错漏也请多指教,谢谢!一、概述-循环队列的基本组成结构为:(int) maxSIze:队列的最大容量。(int) front:指向队列头的“指针”。(实际上存储的是指向队列第一个元素下标)(int) rear:指向队列尾的“指针”。(实际上存储的是队列最后一个元素的下一个位置的下标)(E[ ]) queueArr:模拟队列的数组。(E的类型取决于实际情况)-相较于普通队列的区别:队原创 2021-01-17 14:27:15 · 1031 阅读 · 0 评论 -
数据结构与算法--数组模拟队列(Queue)
此文章仅作为自己学习过程中的记录和总结,同时会有意地去用英文来做笔记,一些术语的英译不太准确,内容如有错漏也请多指教,谢谢!一、概述需要强调的是,此文所指的队列并非之后的环形队列、循环队列、链队列等,就是最普通的用数组模拟的顺序队列。队列的基本组成结构为:(int) maxSIze:队列的最大容量。(int) front:指向队列头的“指针”。(实际上存储的是指向队列第一个元素的前一个位置的下标)(int) rear:指向队列尾的“指针”。(区别于front,所存储的就是队列最后一个元素的位原创 2021-01-15 14:00:48 · 231 阅读 · 0 评论 -
数据结构与算法--稀松数组(Sparse Array)
此文章仅作为自己学习过程中的记录和总结,同时会有意地去用英文来做笔记,一些术语的英译不太准确,内容如有错漏也请多指教,谢谢!一、概述此文章只记录关于稀松数组的例子,没有稀松数组的定义等内容。但是需要强调的是,稀松数组适用于二维数组中大部分数据具有相同的值的情况,此时稀松数组可以显著地提高算法效率。反之,若不在上述情况下使用稀松数组,则可能得到效率更低下的结果。稀松数组的结构大体如下:IndexRowColumnValue0原数组行数原数组列数特殊数据的个数1原创 2021-01-14 17:27:48 · 407 阅读 · 0 评论 -
数据结构--LinkedList的实现
此文章仅作为自己学习过程中的记录和总结,同时会有意地去用英文来做笔记,一些术语的英译不太准确,内容如有错漏也请多指教,谢谢!Implementations of related methods of LinkedList:- LinkedList结点结构:/** * Node is identical to ListNode from the example, but parameterized with T. */private class Node { //The data field原创 2021-01-05 01:26:55 · 223 阅读 · 0 评论 -
数据结构--ArrayList的实现
此文章仅作为自己学习过程中的记录和总结,同时会有意地去用英文来做笔记,一些术语的英译不太准确,内容如有错漏也请多指教,谢谢!Implementations of related methods of ArrayList:package list.demo;import java.util.Arrays;import java.util.Collection;import java.util.Iterator;import java.util.List;import java.util.Li原创 2021-01-04 21:11:23 · 125 阅读 · 0 评论 -
树-树及二叉树的定义和存储结构、遍历二叉树、线索二叉树、哈夫曼树及其应用(C语言描述)
树-树的定义及存储结构、二叉树、遍历二叉树、线索二叉树、哈夫曼树(C语言描述)此文章仅作为自己学习过程中的记录和总结,同时会有意地去用英文来做笔记,一些术语的英译不太准确,内容如有错漏也请多指教,谢谢!一、树(Tree)的定义:树(Tree):是n(n>=0)个结点的有限集。n=0时称为空树。不同于先前所学的一对一的线性结构,树是一种一对多的数据结构。在任意一棵非空树中:(1):有且仅有一个特定的称为根(Root)的结点。根结点是唯一的,不可能存在多个根结点;(2):当n>1时,其余结原创 2020-08-16 15:34:31 · 670 阅读 · 0 评论 -
串--串的定义,顺序、链式存储结构,BF、KMP模式匹配算法(C语言描述)
串的定义,顺序、链式存储结构,BF、KMP模式匹配算法(C语言描述)此文章仅作为自己学习过程中的记录和总结,同时会有意地去用英文来做笔记,一些术语的英译不太准确,内容如有错漏也请多指教,谢谢!一、串(String)的定义:串(String):由零个或多个字符组成的有限序列,又名叫字符串。一般记作 s=“a1a2…an”(n>=0),其中s是串的名称,用双引号(有些书也用单引号)括起来的字符序列是串的值,注意引号不属于串的内容。ai(1<=i<=n)可以是字母、数字或其它字符。原创 2020-08-03 23:51:47 · 2037 阅读 · 0 评论 -
栈与队列Part2--队列的定义、顺序、循环、链队列及其部分操作具体实现(C语言描述)
栈与队列–队列的定义、顺序、循环、链队列及其部分操作具体实现(C语言描述)此文章仅作为自己学习过程中的记录和总结,同时会有意地去用英文来做笔记,一些术语的英译不太准确,内容如有错漏也请多指教,谢谢!一、队列(Queue)的定义:队列(Queue) : 是只允许在一端进行插入操作,在另一端进行删除操作的特殊的线性表。队列是一种先进先出(FIFO)的线性表。允许插入的一段称为队尾(an),允许删除的一端称为队头(a1)。队列在程序设计中用的很频繁。例如,我们用键盘进行各种输入到显示器上的输出;客原创 2020-07-21 23:19:48 · 406 阅读 · 0 评论 -
栈与队列Part1--栈的定义与应用、顺序栈、两栈共享空间、链栈的部分操作具体实现(C语言描述)
栈的定义、抽象数据类型(ADT)、顺序存储结构定义、两栈共享空间定义及进栈出栈操作具体实现方法(C语言描述)此文章仅作为自己学习过程中的记录和总结,同时会有意地去用英文来做笔记,一些术语的英译不太准确,内容如有错漏也请多指教,谢谢!一、栈(Stack)的定义:栈(Stack): 是限定仅在表尾进行插入和删除操作的线性表。是一种特殊的线性表。栈又称为 后进先出(Last In First Out) 的线性表,简称LIFO结构。(Examples:Photoshop and Word’s “Un原创 2020-06-28 18:03:04 · 585 阅读 · 0 评论 -
线性表Part2--静态、循环、双向链表(C语言描述)
线性表链式存储结构定义及单链表获取、插入、删除、创建删除整表等操作具体实现方法(C语言描述)一、线性表的链式存储结构(Linked List)定义:为了解决线性表的顺序存储结构在进行插入和删除操作时需要移动大量元素,耗费大量时间的问题,链式存储结构应运而生。以前在顺序结构中,每个数据元素只需要存储数据元素的信息。而现在在链式结构中,除了数据元素信息,我们还需要存储它后继元素的存储地址。线性表的链式存储结构的特点是:单线索,无分支。 用一组任意的存储单元存储线性表的数据元素,这组存储单元可以是连续的,也原创 2020-06-28 01:22:47 · 364 阅读 · 0 评论 -
线性表Part1--定义及ADT、顺序、链式存储结构及其部分操作具体实现(C语言描述)
线性表Part1–定义、抽象数据类型(ADT)、顺序存储结构定义及其部分操作具体实现方法(C语言描述)此文章仅作为自己学习过程中的记录和总结,同时会有意地去用英文来做笔记,一些术语的英译不太准确,内容如有错漏也请多指教,谢谢!1.线性表(List)的定义:线性表(List):零个或多个数据元素的有限序列。通常将线性表记作(a1,a2,…,an),n指表长,当n=0时称该表为空表。同时注意此处下标是从1开始的。线性表包括顺序表和链表。二者的主要区别在于:在顺序表中,数据元素是用一段地址连续的存储原创 2020-06-25 20:47:48 · 2562 阅读 · 1 评论