浙大数据结构

第二章–线性结构

线性结构是按顺序存储的一种结构,常用的线性结构有线性表,队列,栈,数组等。

1、数组:

数组是最为常用的一种线性结构,他的特点有:
1.数组是相同数据类型的元素的集合。
2.数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。
3.数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。
4.敲写代码较为简便,并且可直接依靠数组下标名找出相应位置的元素

2、链表:

链表与数组不同,他是以链式存储的,他能更方便的插入与删除元素,但用链式存储时,敲写代码比顺序存储复杂许多。链表的特点有:
1.存储单元可以不连续,所以想要找到一个想要的元素必须先找到他的前一个元素(单向链表)才可。
2.插入元素时可执行相对的操作便可直接插入,不用像数组那样将后面的元素依次往后移从而浪费大量时间。
3.存储是动态的,于是乎链表里面有多少元素即占多少元素占用的空间,不会像数组那样需事先开辟一个大的静态空间。
4.可以同时存放多类的元素,如我一个结构体里可以存放int 、double、char、甚至还能存放一个数组、链表。

堆栈

堆栈是一种计算机领域中常使用的数据结构,我们经常使用的函数调用,递归都是存放在堆栈里面,于是可见,这种结构不能忽视。
而堆栈也是一种线性结构,他有两种表示法

  • 当元素为统一类型的时候我们经常使用数组来执行堆栈操作
  • 当元素类型多样时我们使用链表或者结构体数组去操作

堆栈的特点有:

  1. 只能在一端进行插入和删除操作
  2. 它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。
  3. 栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。
队列

队列和栈一样是一种特殊的线性结构,他只能从对头进行删除操作,队尾进行插入操作。并且与栈一样有两种表示法
我们常见的bfs搜索算法便是由队列进行的。
队列的特点:

  1. 只能在对头删除,队尾插入
  2. 它按照先进先出的原则存储数据,先进来的数据先被使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值