图—简介

因此,您不熟悉数据结构,并且了解链表和二叉树,但是图到底是什么? 对于大型的密集图,邻接矩阵可以紧凑地存储关系,因为矩阵中的每个条目仅需要存储一位。 还有其他形式的矩阵,其中代表加权值的数字存储在矩阵本身的元素中,或者元素指向边缘对象(如果没有边缘,则为null),尽管这会增加必要的存储量用于矩阵。 那么,您怎么知道要使用哪个呢? 好吧,这取决于对您的用例而言最重要的是什么。 您的图表会变大还是变小? 空间是一个更大的问题,还是您希望更快的遍历时间? 但是,对于大多数图形应用而言,邻接表已足够并且最合适。 图是顶点和边的集合,代表数据及其关系。 图形可用于各种网络(社交,物理等)—现实生活中的应用程序包括Facebook和Google Maps。 在大多数情况下,邻接表会更好。 希望您现在对图有了更好的了解,但是请记住,这只是冰山一角。 为什么像LinkedIn,Google和Facebook这样的大公司都严重依赖于图表,这是有原因的-阅读有关Facebook在2007年从关系数据库过渡到图形数据库的背后原因,或在此了解LinkedIn的数据库规模的原因。 freeCodeCamp很好地介绍了如何使用Javascript实现图形数据结构。 使用Khan Academy的图形表示教程快速练习。 是否需要有关邻接表和矩阵的更多详细信息?…

那么什么是链表?

那么什么是数据结构? 数据结构是组织存储在计算机或数据库中的数据的方法。 现在,如果您像我一样,并且刚刚开始涉足计算机科学领域,您可能想知道为什么我们拥有不同类型的数据结构。 为什么不为我们的所有需求使用相同的数据结构? 事实证明,每种数据结构都有自己的优点和缺点。 例如,某些数据结构在存储和记录数据时非常快,但在搜索和检索时却很慢。 然后,还有其他类型的数据结构,它们在存储数据时非常慢,但是在检索数据时却非常快。 因此,每种数据结构类型对于不同的数据组织方案都可能有用。 为什么重要的是要知道? 了解和知道如何在编程中实现不同类型的数据结构对于使应用程序平稳高效地运行至关重要。 数据结构对性能和速度有很大影响。 例如,假设您正在为Twitter工作,并负责将真正的旧推文存储在数据库中。 您的主要重点是快速有效地存储推文。 在这种情况下,您可能希望使用诸如链表之类的数据结构,该结构在记录和存储大量数据时非常快。 链表的缺点是检索存储信息的速度非常慢。 但是由于您不会经常检索旧的tweet,因此链接列表非常有用! 另一方面,如果要以允许很多人快速查看它们的方式存储最近的tweet,则可能希望使用像哈希表这样的数据结构可以快速访问存储的数据。 链表…