堆叠的介绍可以参考此篇。
//Stack
class Stack {
constructor(){
this.list = []
}
// 新增元素
push(data) {
this.list.push(data)
}
// 从顶端移除元素
pop(){
return this.list.pop()
}
// 此堆叠元素量
size(){
return this.list.length;
}
// 查看最顶端元素
peek(){
return this.list[this.list.length - 1]
}
}
let stack = new Stack()
stack.push(20)
stack.push(60)
console.log(stack.size())//2
console.log(stack.peek())//60
stack.pop()
console.log(stack.peek())//20
阵列的介绍可以参考此篇。
//Stack
class StackNode {
constructor(data) {
this.data = data
this.next = null
}
}
class LinkedStack {
constructor() {
this.top = null
this.length = 0
}
// 新增元素
push(data) {
let node = new StackNode(data)
if(!this.top){
this.top = node
this.length = 1
}else{
let current = new StackNode(data)
current.next = this.top
this.top = current
this.length+=1
}
}
// 删除顶端元素
pop() {
if(!this.top){
return null
}else{
this.top = this.top.next
this.length -= 1
}
}
// 查看最顶端元素
peek() {
if(!this.top){
return null
}else{
return this.top.data
}
}
// 此堆叠元素量
size() {
return this.length
}
}
let stack = new LinkedStack()
stack.push('20')
stack.push('30')
stack.push('40')
console.log(stack.size())//3
console.log(stack.peek())//"40"
stack.pop()
console.log(stack.peek())//"30"
console.log(stack.size())//2
stack.pop()
console.log(stack.size())//1
console.log(stack.peek())//"20"
#Stack
class StackNode():
def __init__(self, data=None, next=None):
self.data = data
self.next = None
class LinkedStack():
def __init__(self, top=None):
self.top = top
def push(self, data):
if self.top is None:
self.top = StackNode(data)
else:
current = StackNode(data)
current.next = self.top
self.top = current
def pop(self):
if self.top is None:
return None
else:
self.top = self.top.next
return
def peek(self):
if self.top is None:
return None
return self.top.data
def size(self):
count = 0
current = self.top
while current:
count += 1
current = current.next
return count
stack = LinkedStack()
stack.push('20')
stack.push('30')
stack.push('40')
print(stack.size())#3
print(stack.peek())#"40"
stack.pop()
print(stack.peek())#"30"
print(stack.size())#2
stack.pop()
print(stack.size())#1
print(stack.peek())#"20"
链结串列的介绍可以参考此篇。
<<: Day2 - 建立 LINE 官方帐号并完成基本设定
>>: [Tableau Public] day 17:试着分析appstore资料集-2
今天是最後一篇 我居然写完了 中间还去了屋久岛 三天两夜完全没网路 一天打越洋电话回台湾叫朋友帮忙发...
笔者某次因为商务需求,到外贸协会申请调阅资料,想看历年来东南亚某国与台湾各项产业的贸易数据,惊讶的发...
1.文字工具 (档案12,影片Ps1) 左框 (1)文字工具 (1)文字: a.段落文字:拉框,拉大...
来到了第四天,我们可以进入比较复杂一点点的操作。但一样先讲结论,如果你很急着用,可以直接使用这份 A...
1.前言 今天比较晚po文,开学了超多事情要忙,课也超多(三条线)。好了抱怨时间结束!!这篇如前两篇...