新2体育登陆网址 新2体育登陆网址 新2体育登陆网址

计算机科学——14 种数据结构

未来很有可能做计算机和人工智能方面的研究。虽然不是低级的计算机研究结构体数组,但是了解计算机还是不错的。所以,我会填写一些基本的计算机知识并做笔记。该课程是互联网上非常流行的计算机科学速成课程。整个课程有40集,最近已经完成。

14 数据结构

这一集高能,基本上每分钟一个数据结构。

上节课我讲了写算法,比如数组排序和最短路径。但是,上一节没有提到的是算法处理的数据以什么格式存储在内存中。我们希望数据结构化且易于阅读。因此,科学家发明了数据结构。

14.1 数组

数组的值是一个接一个地连续存储在内存中的,所以不像以前一个变量只存储一个值,我们可以在数组变量中存储多个值。我们使用下标[i]取值,下标一般从0开始。数组变量代表第一个元素的地址,然后通过offset获取其他元素的坐标。

将结构数组写入文件_php结构数组去重_结构体数组

结构体数组_php结构数组去重_将结构数组写入文件

大批

现在很多语言都自带了一些数组的算法,比如排序算法,不需要我们直接写。

14.2 字符串

与数组类似的是字符串,它是由字母、数字和标点符号组成的数组。编写代码时,可以用括号括起来,j = "START"。在字符串的末尾,有一个 NULL 项,表示字符串的结尾。

将结构数组写入文件_php结构数组去重_结构体数组

字符串数组

结构体数组_php结构数组去重_将结构数组写入文件

因为计算机经常处理字符串,所以有很多字符串函数,例如连接字符串的 strcat(取两个字符串并将第二个放在第一个的末尾)。

14.3 矩阵

有时,我们需要处理图像或表格结构体数组,在这种情况下我们需要矩阵。我们可以将矩阵视为数组的数组。多维数组中的元素实际上排列顺序与一维数组相同,只是提取数组的方法不同。

结构体数组_将结构数组写入文件_php结构数组去重

矩阵数组 14.4 结构

将多种不同类型的数据打包在一起称为结构。我们甚至可以做一个结构数组。结构体数组和普通数组一样,在创建时空间是固定的,不能动态增加容量。

将结构数组写入文件_php结构数组去重_结构体数组

将结构数组写入文件_php结构数组去重_结构体数组

结构 14.5 链表

我们可以通过将值和指针放在节点(结构)中来动态添加元素。指针是一种特殊类型的变量,它指向一个内存地址。多个连接的节点称为链表。链表有很多种,比如循环链表和单链表等。

将结构数组写入文件_结构体数组_php结构数组去重

链表

与具有固定长度的数组不同,链表可以通过更改它们指向的指针来动态添加元素。

php结构数组去重_结构体数组_将结构数组写入文件

14.6 队列和栈

队列和栈都是基于链表的(好像有数组类型,但是不常用)。

队列就像排队一样,谁先到谁先,这称为先进先出(FIFO)。有进入和退出操作。进入在队尾进行,退出在队首进行。

堆栈是先进后出的结构。堆栈元素的进入和退出称为 push 和 pop。压入和弹出是在堆栈顶部完成的。

14.7 树

如果节点有两个指针,它们分别指向左树和右树。最高的节点称为根节点,其余的称为子节点。没有任何子节点的节点称为叶节点。如果每个节点最多有两个孩子,则称为二叉树。

php结构数组去重_将结构数组写入文件_结构体数组

php结构数组去重_结构体数组_将结构数组写入文件

二叉树

树的一个重要特性是它们从根到叶是单向的。

14.8 数字

与树不同,如果数据可以随意连接,包括循环,则称为图。

结构体数组_php结构数组去重_将结构数组写入文件

图片

以上是主要的数据结构,除了堆和红黑树等。最后,善用数据结构可以帮助我们更高效地完成一些任务开发。这一节就结束了,内容真的很大。