1.栈(Stack)
栈的特点是先进后出,相当于你往桌子上放书本,先放上去的在下边。栈的常用方法:push,让一个元素放到栈顶 pop:移除栈顶元素,并且返回被移除的元素。 peek:返回栈顶元素。 length:栈的长度
2.队列(queue)
队列的特点和栈有点相同,不过队列是先进先出,和排队买东西时一样的,第一个排队的人肯定时第一个先结账的
队列常用的方法:enqueue: 入列,向队列的尾部增加一个元素。 dequeue:出列,移除队列的第一个元素并返回被移除的那个元素。 font: 获取队列的第一个元素。 isEmpty:判断队列是否为空。size: 获取队列中元素的个数。
3.链表(the list)
链表的每个元素包含的是当前的元素以及下一个元素的指针,是一种链式数据结构。数组和链表的区别:
数组:1.静态内存分配,编译时分配并且连续的内存地址。 2.元素获取是通过index下标来实现的,比较快。 3.添加删除元素的话因为内存地址是连续固定的,所以添加或者删除是比较慢的。 4.数组的空间结构的话可以是一维也可以是多维
链表:1.链表是动态内存分配,什么时候运行什么时候分配,并且分配的内存是不连续的。 2.元素获取是比较慢的,通过遍历顺序访问。 3.添加删除元素是比较快的,内存分配灵活。 4.链表也可以是单向链表,双向链表,循环链表。
链表的常用方法:size: 返回链表中节点的个数 head: 返回链表中头部元素 add: 项链表尾部添加一个节点 remove: 删除某个节点 indexOf: 返回某个节点的index elementAt: 返回某个index处的节点 addAt:在某个index处插入一个节点 removeAt: 删除index的节点