1、一维数组
p y t h o n 3 python3 python3 中实现数组比较简单的方式就是使用列表,以下基于列表实现一维数组。
# -*- coding: utf-8 -*-
# define a array class
class array(object):
# 默认生成一个大小为32的数组,每个元素默认值为None
def __init__(self,size=32):
self._size = size
self._items = [None] * self._size
# 访问数组第index+1个元素
def __getitem__(self,index):
return self._items[index]
# 修改索引为index的元素值
def __setitem__(self,value):
self._items[index]=value
# 返回数组长度
def __length__(self):
return self._size
# 清空数组
def clear(self,value=None):
for i in range(self._size):
self._items[i]=value
def __iter__(self):
for item in self._items:
yield item
2、栈
- 栈的特点:后进先出( L I F O LIFO LIFO)
- 栈的操作:
- 进栈( p u s h push push)
- 出栈( p o p pop pop)
- 栈空( e m p t y empty empty)
以下基于 p y t h o n 3 python3 python3 的列表实现栈( s t a c k stack stack)
# -*- coding: utf-8 -*-
class stack(object):
# 初始化
def __init__(self):
self._list = []
# 进栈
def push(self,value):
return self._list.append(value)
# 出栈
def pop(self):
try:
return self._list.pop()
except IndexError:
print('stack is empty!')
# 栈空
def empty(self):
return len(self._list)==0
3、队列
- 队列的特点:先进先出( F I F O FIFO FIFO)
- 队列的操作:
- 进队列( e n q u e u e enqueue enqueue)
- 出队列( d e q u e u e dequeue dequeue)
- 队列空( e m p t y empty empty)
以下基于 p y t h o n 3 python3 python3 的列表实现队列( q u e u e queue queue)
# -*- coding: utf-8 -*-
class queue(object)
# 初始化
def __init__(self):
self._list = []
# 进队列
def enqueue(self,value):
return self._list.append(value)
# 出队列
def dequeue(self):
try:
return self._list.pop()
except IndexError:
print('queue is empty!')
# 队列空
def empty(self):
return len(self._list)==0
4、总结
线性数据结构包括一维数组,栈和队列。以上基于 p y t h o n 3 python3 python3 标准数据类型 l i s t list list 实现,感兴趣的读者可以通过 A D T ADT ADT 实现,例如循环链表等。