数据结构整理----C语言编程(总)

对于漫长的编程之路我只是一个路人,随手捡起的石子我会扔到道路两旁,摘下的花儿我会同人分享,遇见的泥泞坑洼我也愿意同你诉说。

今天开始学习数据结构,而后逐步渐入佳境,希望你同我一样进步。
个人喜欢比较庸俗的理解,方便记忆,语言粗鄙,还望见谅。

理解

首先理解“数据结构”的字的表面意思:
数据在计算机程序中,是可以被计算机程序识别、存取、和加工处理的符号、字符、图形、图像、声音、视频信号等一类的表示。
而结构,在生活中,就像一座房子,都有它自身的构造,一个公司也会有它相应的制度结构,那些都是人们在漫长岁月中想出来的。
所以数据结构,就是数据的结构,也可以说成是数据的组织形式,在我的理解中,即可以有千变万化种结构,这样的结构可能是常见的你我都可以见到的表格结构,抑或不太容易理解的树形结构。都可以在每个地方存放读取数据,以方便数据的更改、存取、计算。

分类

如果非要分类,那数据结构可以分成数据的逻辑结构物理结构(存储结构)、以及运算

逻辑结构:集合结构、线性结构、树形结构、图结构(网状结构)。

  • 集合结构:元素只属于一个整体集合,之间没有关系。

  • 线性结构:“一对一”关系。

  • 树形结构:“一对多“关系。

  • 图结构:“多对多”关系。

    主要为后面三种。

物理(存储)结构:顺序存储结构、链式存储结构、索引存储结构、哈希(散列)存储结构。

  • 顺序存储结构:类似排序号,可以用数组来表示。

  • 链式存储结构:利用指针使得数据有一定的关系。

  • 索引存储结构:就好像目录,输入关键字可以查找出地址,从而得到数。

  • 哈希存储结构:同上面关键字,只不过通过哈希函数算出数据地址。

数据运算此处不加赘述。

算法

在计算机中,算法就是要把数据的结构展示出来的而编写的一类程序。用这一类程序可以套入许多问题中,万变而不离其宗。

判断算法的好坏可以通过分析其时间复杂度空间复杂度

  • 时间复杂度:程序运行从开始到结束所需要的时间。

  • 空间复杂度:程序运行从开始到结束所需要的存储量。

总结

初步了解到数据结构的概念、分类及实现方式。大致的轮廓已经摆在面前,今后的学习中,将学到许多新的数据结构及其算法,我要通过尝试将它们一个一个实现,这样才可以在学习中进步。共同勉励!

你可能感兴趣的:(概述)