数据结构之线性表小结

以下都是用自己的话来总结的,可能和专业术语有偏差(大鸟勿喷),留给自己复习使用啦

一、数据结构:其实就是在你编写一个程序之前,你所用到的数据想用怎样方式存起来:固定长度的静态存储(顺序存储,一般用数组)、变长的动态存储(链式存储,一般用指针),除此之外,数据之间也会有一定的联系,方便互相找到彼此(逻辑结构,常用的有:集合,线性结构,树结构,图结构

用课本上的话来说就是:数据结构分为逻辑结构(4种)和存储结构(2种)

二、算法:就是对步骤的一种描述,就像我们说的解题思路一样,你可以把它用文字说出来,先怎么着再怎么着,你也可以用符号表示出来,他不依赖于某种语言,不同的算法针对的是不同的问题

相应的算法分析就是看看你用这种方法写的程序能用多长时间跑出来,在过程中占用了多少的内存,当然好的算法肯定是用时少,占地小啦。(时间复杂度和空间复杂度)

开个小分支,最基础最经典的十大算法(刚百度的):高速排序算法 、堆排序算法、归并排序、二分查找算法、BFPRT(线性查找算法)、DFS(深度优先搜索、BFS (广度优先搜索)、Dijkstra算法、动态规划算法、朴素贝叶斯分类算法


最近跟着老师学完了线性表,在此做一个小结:

1.逻辑关系:就是前后相连(有前驱、后继)

2.存储结构不同分为顺序表(顺序存储--数组)和单链表(链式存储--数据域和指针域)

链表还有:循环链表、双链表、

两种表的实现和基本操作的实现(初始化,增删改查、排序)

两种表各有优劣:顺序表方便查找,其他的操作耗费资源都很大,相反链式表除了查询,其他操作都很方便。

可以把两种方式结合在一起:静态链表、间接寻址

3.线性表的应用:

大整数求和 、一元多项式求和。

具体操作我现在要去码代码啦!

在学习的过程中复习了C++的指针的知识,比起大一的时候明白了好多

**

int *p;//int 是P指向对象的类型,不是指针自己的类型,不管指向什么类型,指针都是无符号长整型4个字节
p=new int;//用p去申请一个整型的空间变量
*p=5;//给变量赋值为5

new 是为P的指向申请一个空间
delete 是删除p的指向空间,并没有删除p指针本身

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章