现希望对商品信息进行存储,内容包括商品价格,商品名称,商品编码,请利用链式栈与链式队列分别实现单个商品信息的录入(写出数据结构代码)
时间: 2024-10-13 20:11:17 浏览: 19
在Python中,我们可以使用双向链表来实现链式栈和链式队列,这里我会给出基本的数据结构代码示例。假设我们有一个Node类用于构建链表节点:
```python
class Node:
def __init__(self, data):
self.data = data
self.next = None
self.prev = None
class Stack:
def __init__(self):
self.top = None
def push(self, data):
new_node = Node(data)
if not self.is_empty():
new_node.prev = self.top
self.top = new_node
self.top.next = None
def pop(self):
if self.is_empty():
return None
popped_data = self.top.data
self.top = self.top.next
if self.is_empty():
self.top.prev = None
else:
self.top.prev = None
return popped_data
def is_empty(self):
return self.top is None
# 链式队列实现
class Queue:
def __init__(self):
self.front = self.rear = None
def enqueue(self, data):
new_node = Node(data)
if not self.is_empty():
new_node.next = self.front
self.front.prev = new_node
else:
self.front = self.rear = new_node
self.rear = new_node
def dequeue(self):
if self.is_empty():
return None
dequeued_data = self.front.data
self.front = self.front.next
if self.front is None:
self.rear = None
else:
self.front.prev = None
return dequeued_data
def is_empty(self):
return self.front is None
```
以上代码实现了简单的链式栈和链式队列,你可以根据需要对它们进行扩展,以适应商品信息的录入。例如,添加一个`add_product`方法用于插入新的商品数据,`get_product`方法用于获取并移除顶部的商品等。
阅读全文