Weaving Wong

总觉得该写点啥...

嗨,我是Weaving,一名机器学习爱好者.


分享读书、学习、生活感悟

数据结构(1)-结构初步

摘要

这几天开始学习数据结构方面的知识,也是为了后面算法的学习打一些基础,人们都说数据结构和算法是相互依存的关系,我想应该是有一些道理的。所以目前是以程杰的《大话数据结构》作为自学教材进行学习,初步看来,目前觉得这本书还是不错的,书中是以C语言作为编程实现语言,辅助的学习材料是Kenneth A.Reek的《C和指针》,虽然我后面的学习重点应该是Python和java,但是应该影响是不大的。

1.学习数据结构的一个例子

需要完成客户排队系统模块的代码工作,如果是使用数据库采用自动递增的整型数字作为客户的编号,直接对数据进行操作,那样势必有一些小题大做的嫌疑。正确的做法是:使用队列的结构,队列的结构比数据要好一些,又不用考虑数组的溢出问题。

2.数据结构的起源

1968年,美国的高纳斯教授在其所写的《计算机程序设计艺术》中较为详细的阐述了数据结构的相关概念,从此开创了这门课程的体系。

3.数据的逻辑结构和物理结构

  • 逻辑结构,即我们常说的数据元素之间的关系,这是我们之后需要关注的最重要的问题。常见的逻辑结构包括:集合结构(数据平等,同属一个集合),线性结构(一对一)、树形结构(一对多)、图形结构(多对多)。
  • 物理结构:有时也叫做存储结构,意味着这是指该数据在计算机中的存储形式。其中包括顺序存储和链式存储,前者的数据存储在地址连续的地址单元空间中,其逻辑关系和物理关系是一致的,类似于排队占位的例子。而链式结构的数据存储形式就不太一样,真实情况可能数据不是连续的,数据涉及到插入和删除,如采用的是顺序存储结构,那么涉及到的移动操作就比较繁琐,链式存储中,其数据可以存储在内存单元的任何位置,每个位置有一个相应的地址对应。移动、插入、删除的操作不影响其他数据的结构独立性,所以其灵活性就大了许多。
  • 总的来说,逻辑结构是面向问题的,而物理结构是面向计算机的,其基本的目标是将数据及起逻辑关系存储到计算机的内存之中。

参考文献

大话数据结构

最近的文章

机器学习(2)-Tensorflow初步

Tensorflow库函数的理解很多时候对于tensorflow 官网的一些api的解释很不理解,有时候在各大论坛逛一遍才能明白真实的意思,虽然这样也是一个解决方案,但是人毕竟不是神。好记性确实不如烂笔头,偶尔记录一下,在本页汇集比较难理解的一些point.tf.matmul() tf.matmul(a,b,transpose_a=False,transpose_b=False,adjoint_a=False,adjoint_b=False,a_is_sparse=False,b_is_...…

机器学习继续阅读