数据结构基础2

二,顺序表

1,顺序表的形式。(先忘掉python的列表这些数据结构)

内存:以一个字节为索引单位;类型本质:int,char;连续存储:顺序存储



--------

接下来是两种基本顺序表概念图:左是一体顺序表(多为存储的元素数据类型一致),右是元素外置的顺序表,上图所示是32位机器,li变量直接指向第一个,也是第一个元素为什么是li[0],因为偏移量为0(注:计算机按字节寻址)逻辑位置即下标如li[1]

2,顺序表结构如何,又如何实现呢(在python中已经对这一部分进行了封装):


一体式和分离式结构使用方面新的前者全部要新申请;后者表头不变,只是链接指向数据地址的变了。引出下面的概念(分离式结构又称动态顺序表)


3,顺序表的操作:

增加:

删除同增加

4,python中的顺序表:

即list使用了元素外置顺序表形式的分离式结构。(为什么分配八个元素存储区:元素外置,顺序表中存的是位置的数值,都是一定大小的,这就使存储不同类型元素出现了)

三,链表

1,引入概念

注:链表与顺序表都是线性表。

2,单向链表:

增删改查:


对于指向下一个节点的指针在c中可以用*这个数据结构表示,那在pyhton中怎么弄?


先来看图,在python中,a=10代表a占一小块地方,10占一小块地方,a占的地方里面存10的地址。所以,最后一句就相当于a,b=20,10,a指向20,b指向10。这就是为什么python不需要int a=10,c中这个相当于一小块内存,数值为10别名为a,也就是变量a。在py中一切皆对象

所以,定义一个类,类node中连最基本两个成员函数为elem,next,代码实现:


忘了使markdown了,



这也是为什么现在顺序表的使用多于链表的原因

3,双向链表:



代码不给看嘿嘿,诸看官可以尝试自己实现

数据存储方式讲完了。下面就是数据结构的第二部分即如何使用

四 栈和队列

1,栈:利用线性表的任意一种都可以实现


使用顺序表实现:


2,队列


hhhhhhhh,代码再给一次:

好啦,数据结构大部分介绍完成,下面就会聊聊一些常用的排序搜索算法嗯哼哼

看我这么辛苦小心心不给一个吗?企图卖萌中@~@

你可能感兴趣的:(数据结构基础2)