Merge branch 'krahets:master' into typescript
This commit is contained in:
commit
e9e30833fa
@ -30,7 +30,7 @@ int* extend(int* nums, int size, int enlarge) {
|
|||||||
/* 在数组的索引 index 处插入元素 num */
|
/* 在数组的索引 index 处插入元素 num */
|
||||||
void insert(int* nums, int size, int num, int index) {
|
void insert(int* nums, int size, int num, int index) {
|
||||||
// 把索引 index 以及之后的所有元素向后移动一位
|
// 把索引 index 以及之后的所有元素向后移动一位
|
||||||
for (int i = size - 1; i >= index; i--) {
|
for (int i = size - 1; i > index; i--) {
|
||||||
nums[i] = nums[i - 1];
|
nums[i] = nums[i - 1];
|
||||||
}
|
}
|
||||||
// 将 num 赋给 index 处元素
|
// 将 num 赋给 index 处元素
|
||||||
|
@ -29,18 +29,22 @@ public:
|
|||||||
|
|
||||||
/* 出栈 */
|
/* 出栈 */
|
||||||
int pop() {
|
int pop() {
|
||||||
int oldTop = stack.back();
|
int oldTop = top();
|
||||||
stack.pop_back();
|
stack.pop_back();
|
||||||
return oldTop;
|
return oldTop;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 访问栈顶元素 */
|
/* 访问栈顶元素 */
|
||||||
int top() {
|
int top() {
|
||||||
|
if(empty())
|
||||||
|
throw out_of_range("栈为空");
|
||||||
return stack.back();
|
return stack.back();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 访问索引 index 处元素 */
|
/* 访问索引 index 处元素 */
|
||||||
int get(int index) {
|
int get(int index) {
|
||||||
|
if(index >= size())
|
||||||
|
throw out_of_range("索引越界");
|
||||||
return stack[index];
|
return stack[index];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ namespace hello_algo.chapter_array_and_linkedlist
|
|||||||
public static void Insert(int[] nums, int num, int index)
|
public static void Insert(int[] nums, int num, int index)
|
||||||
{
|
{
|
||||||
// 把索引 index 以及之后的所有元素向后移动一位
|
// 把索引 index 以及之后的所有元素向后移动一位
|
||||||
for (int i = nums.Length - 1; i >= index; i--)
|
for (int i = nums.Length - 1; i > index; i--)
|
||||||
{
|
{
|
||||||
nums[i] = nums[i - 1];
|
nums[i] = nums[i - 1];
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@ public class array {
|
|||||||
/* 在数组的索引 index 处插入元素 num */
|
/* 在数组的索引 index 处插入元素 num */
|
||||||
static void insert(int[] nums, int num, int index) {
|
static void insert(int[] nums, int num, int index) {
|
||||||
// 把索引 index 以及之后的所有元素向后移动一位
|
// 把索引 index 以及之后的所有元素向后移动一位
|
||||||
for (int i = nums.length - 1; i >= index; i--) {
|
for (int i = nums.length - 1; i > index; i--) {
|
||||||
nums[i] = nums[i - 1];
|
nums[i] = nums[i - 1];
|
||||||
}
|
}
|
||||||
// 将 num 赋给 index 处元素
|
// 将 num 赋给 index 处元素
|
||||||
|
@ -33,16 +33,22 @@ class ArrayStack {
|
|||||||
|
|
||||||
/* 出栈 */
|
/* 出栈 */
|
||||||
public int pop() {
|
public int pop() {
|
||||||
|
if (isEmpty())
|
||||||
|
throw new EmptyStackException();
|
||||||
return stack.remove(size() - 1);
|
return stack.remove(size() - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 访问栈顶元素 */
|
/* 访问栈顶元素 */
|
||||||
public int peek() {
|
public int peek() {
|
||||||
|
if (isEmpty())
|
||||||
|
throw new EmptyStackException();
|
||||||
return stack.get(size() - 1);
|
return stack.get(size() - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 访问索引 index 处元素 */
|
/* 访问索引 index 处元素 */
|
||||||
public int get(int index) {
|
public int get(int index) {
|
||||||
|
if (index >= size())
|
||||||
|
throw new IndexOutOfBoundsException();
|
||||||
return stack.get(index);
|
return stack.get(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ class LinkedListQueue {
|
|||||||
/* 访问队首元素 */
|
/* 访问队首元素 */
|
||||||
public int peek() {
|
public int peek() {
|
||||||
if (size() == 0)
|
if (size() == 0)
|
||||||
throw new IndexOutOfBoundsException();
|
throw new EmptyStackException();
|
||||||
return front.val;
|
return front.val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ class LinkedListStack {
|
|||||||
/* 访问栈顶元素 */
|
/* 访问栈顶元素 */
|
||||||
public int peek() {
|
public int peek() {
|
||||||
if (size() == 0)
|
if (size() == 0)
|
||||||
throw new IndexOutOfBoundsException();
|
throw new EmptyStackException();
|
||||||
return stackPeek.val;
|
return stackPeek.val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ function extend(nums, enlarge) {
|
|||||||
/* 在数组的索引 index 处插入元素 num */
|
/* 在数组的索引 index 处插入元素 num */
|
||||||
function insert(nums, num, index) {
|
function insert(nums, num, index) {
|
||||||
// 把索引 index 以及之后的所有元素向后移动一位
|
// 把索引 index 以及之后的所有元素向后移动一位
|
||||||
for (let i = nums.length - 1; i >= index; i--) {
|
for (let i = nums.length - 1; i > index; i--) {
|
||||||
nums[i] = nums[i - 1];
|
nums[i] = nums[i - 1];
|
||||||
}
|
}
|
||||||
// 将 num 赋给 index 处元素
|
// 将 num 赋给 index 处元素
|
||||||
|
@ -28,16 +28,19 @@ class ArrayStack {
|
|||||||
|
|
||||||
/* 出栈 */
|
/* 出栈 */
|
||||||
pop() {
|
pop() {
|
||||||
|
if (this.empty()) throw "栈为空";
|
||||||
return this.stack.pop();
|
return this.stack.pop();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 访问栈顶元素 */
|
/* 访问栈顶元素 */
|
||||||
top() {
|
top() {
|
||||||
|
if (this.empty()) throw "栈为空";
|
||||||
return this.stack[this.stack.length - 1];
|
return this.stack[this.stack.length - 1];
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 访问索引 index 处元素 */
|
/* 访问索引 index 处元素 */
|
||||||
get(index) {
|
get(index) {
|
||||||
|
if (index >= this.size) throw "索引越界";
|
||||||
return this.stack[index];
|
return this.stack[index];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ def extend(nums, enlarge):
|
|||||||
""" 在数组的索引 index 处插入元素 num """
|
""" 在数组的索引 index 处插入元素 num """
|
||||||
def insert(nums, num, index):
|
def insert(nums, num, index):
|
||||||
# 把索引 index 以及之后的所有元素向后移动一位
|
# 把索引 index 以及之后的所有元素向后移动一位
|
||||||
for i in range(len(nums) - 1, index - 1, -1):
|
for i in range(len(nums) - 1, index, -1):
|
||||||
nums[i] = nums[i - 1]
|
nums[i] = nums[i - 1]
|
||||||
# 将 num 赋给 index 处元素
|
# 将 num 赋给 index 处元素
|
||||||
nums[index] = num
|
nums[index] = num
|
||||||
|
@ -27,14 +27,17 @@ class ArrayStack:
|
|||||||
|
|
||||||
""" 出栈 """
|
""" 出栈 """
|
||||||
def pop(self):
|
def pop(self):
|
||||||
|
assert not self.is_empty(), "栈为空"
|
||||||
return self.__stack.pop()
|
return self.__stack.pop()
|
||||||
|
|
||||||
""" 访问栈顶元素 """
|
""" 访问栈顶元素 """
|
||||||
def peek(self):
|
def peek(self):
|
||||||
|
assert not self.is_empty(), "栈为空"
|
||||||
return self.__stack[-1]
|
return self.__stack[-1]
|
||||||
|
|
||||||
""" 访问索引 index 处元素 """
|
""" 访问索引 index 处元素 """
|
||||||
def get(self, index):
|
def get(self, index):
|
||||||
|
assert index < self.size(), "索引越界"
|
||||||
return self.__stack[index]
|
return self.__stack[index]
|
||||||
|
|
||||||
""" 返回列表用于打印 """
|
""" 返回列表用于打印 """
|
||||||
|
@ -30,7 +30,7 @@ function extend(nums: number[], enlarge: number): number[] {
|
|||||||
/* 在数组的索引 index 处插入元素 num */
|
/* 在数组的索引 index 处插入元素 num */
|
||||||
function insert(nums: number[], num: number, index: number): void {
|
function insert(nums: number[], num: number, index: number): void {
|
||||||
// 把索引 index 以及之后的所有元素向后移动一位
|
// 把索引 index 以及之后的所有元素向后移动一位
|
||||||
for (let i = nums.length - 1; i >= index; i--) {
|
for (let i = nums.length - 1; i > index; i--) {
|
||||||
nums[i] = nums[i - 1];
|
nums[i] = nums[i - 1];
|
||||||
}
|
}
|
||||||
// 将 num 赋给 index 处元素
|
// 将 num 赋给 index 处元素
|
||||||
|
@ -11,6 +11,7 @@ class ArrayStack {
|
|||||||
constructor() {
|
constructor() {
|
||||||
this.stack = [];
|
this.stack = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 获取栈的长度 */
|
/* 获取栈的长度 */
|
||||||
get size(): number {
|
get size(): number {
|
||||||
return this.stack.length;
|
return this.stack.length;
|
||||||
@ -28,16 +29,19 @@ class ArrayStack {
|
|||||||
|
|
||||||
/* 出栈 */
|
/* 出栈 */
|
||||||
pop(): number | undefined {
|
pop(): number | undefined {
|
||||||
|
if (this.empty()) throw new Error('栈为空');
|
||||||
return this.stack.pop();
|
return this.stack.pop();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 访问栈顶元素 */
|
/* 访问栈顶元素 */
|
||||||
top(): number | undefined {
|
top(): number | undefined {
|
||||||
|
if (this.empty()) throw new Error('栈为空');
|
||||||
return this.stack[this.stack.length - 1];
|
return this.stack[this.stack.length - 1];
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 访问索引 index 处元素 */
|
/* 访问索引 index 处元素 */
|
||||||
get(index: number): number | undefined {
|
get(index: number): number | undefined {
|
||||||
|
if (index >= this.size) throw new Error('索引越界');
|
||||||
return this.stack[index];
|
return this.stack[index];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -314,7 +314,7 @@ elementAddr = firtstElementAddr + elementLength * elementIndex
|
|||||||
/* 在数组的索引 index 处插入元素 num */
|
/* 在数组的索引 index 处插入元素 num */
|
||||||
void insert(int[] nums, int num, int index) {
|
void insert(int[] nums, int num, int index) {
|
||||||
// 把索引 index 以及之后的所有元素向后移动一位
|
// 把索引 index 以及之后的所有元素向后移动一位
|
||||||
for (int i = nums.length - 1; i >= index; i--) {
|
for (int i = nums.length - 1; i > index; i--) {
|
||||||
nums[i] = nums[i - 1];
|
nums[i] = nums[i - 1];
|
||||||
}
|
}
|
||||||
// 将 num 赋给 index 处元素
|
// 将 num 赋给 index 处元素
|
||||||
@ -336,7 +336,7 @@ elementAddr = firtstElementAddr + elementLength * elementIndex
|
|||||||
/* 在数组的索引 index 处插入元素 num */
|
/* 在数组的索引 index 处插入元素 num */
|
||||||
void insert(int* nums, int size, int num, int index) {
|
void insert(int* nums, int size, int num, int index) {
|
||||||
// 把索引 index 以及之后的所有元素向后移动一位
|
// 把索引 index 以及之后的所有元素向后移动一位
|
||||||
for (int i = size - 1; i >= index; i--) {
|
for (int i = size - 1; i > index; i--) {
|
||||||
nums[i] = nums[i - 1];
|
nums[i] = nums[i - 1];
|
||||||
}
|
}
|
||||||
// 将 num 赋给 index 处元素
|
// 将 num 赋给 index 处元素
|
||||||
@ -358,7 +358,7 @@ elementAddr = firtstElementAddr + elementLength * elementIndex
|
|||||||
""" 在数组的索引 index 处插入元素 num """
|
""" 在数组的索引 index 处插入元素 num """
|
||||||
def insert(nums, num, index):
|
def insert(nums, num, index):
|
||||||
# 把索引 index 以及之后的所有元素向后移动一位
|
# 把索引 index 以及之后的所有元素向后移动一位
|
||||||
for i in range(len(nums) - 1, index - 1, -1):
|
for i in range(len(nums) - 1, index, -1):
|
||||||
nums[i] = nums[i - 1]
|
nums[i] = nums[i - 1]
|
||||||
# 将 num 赋给 index 处元素
|
# 将 num 赋给 index 处元素
|
||||||
nums[index] = num
|
nums[index] = num
|
||||||
@ -382,7 +382,7 @@ elementAddr = firtstElementAddr + elementLength * elementIndex
|
|||||||
/* 在数组的索引 index 处插入元素 num */
|
/* 在数组的索引 index 处插入元素 num */
|
||||||
function insert(nums, num, index) {
|
function insert(nums, num, index) {
|
||||||
// 把索引 index 以及之后的所有元素向后移动一位
|
// 把索引 index 以及之后的所有元素向后移动一位
|
||||||
for (let i = nums.length - 1; i >= index; i--) {
|
for (let i = nums.length - 1; i > index; i--) {
|
||||||
nums[i] = nums[i - 1];
|
nums[i] = nums[i - 1];
|
||||||
}
|
}
|
||||||
// 将 num 赋给 index 处元素
|
// 将 num 赋给 index 处元素
|
||||||
@ -404,7 +404,7 @@ elementAddr = firtstElementAddr + elementLength * elementIndex
|
|||||||
/* 在数组的索引 index 处插入元素 num */
|
/* 在数组的索引 index 处插入元素 num */
|
||||||
function insert(nums: number[], num: number, index: number): void {
|
function insert(nums: number[], num: number, index: number): void {
|
||||||
// 把索引 index 以及之后的所有元素向后移动一位
|
// 把索引 index 以及之后的所有元素向后移动一位
|
||||||
for (let i = nums.length - 1; i >= index; i--) {
|
for (let i = nums.length - 1; i > index; i--) {
|
||||||
nums[i] = nums[i - 1];
|
nums[i] = nums[i - 1];
|
||||||
}
|
}
|
||||||
// 将 num 赋给 index 处元素
|
// 将 num 赋给 index 处元素
|
||||||
@ -433,7 +433,7 @@ elementAddr = firtstElementAddr + elementLength * elementIndex
|
|||||||
void Insert(int[] nums, int num, int index)
|
void Insert(int[] nums, int num, int index)
|
||||||
{
|
{
|
||||||
// 把索引 index 以及之后的所有元素向后移动一位
|
// 把索引 index 以及之后的所有元素向后移动一位
|
||||||
for (int i = nums.Length - 1; i >= index; i--)
|
for (int i = nums.Length - 1; i > index; i--)
|
||||||
{
|
{
|
||||||
nums[i] = nums[i - 1];
|
nums[i] = nums[i - 1];
|
||||||
}
|
}
|
||||||
|
@ -264,7 +264,7 @@ comments: true
|
|||||||
/* 访问队首元素 */
|
/* 访问队首元素 */
|
||||||
public int peek() {
|
public int peek() {
|
||||||
if (size() == 0)
|
if (size() == 0)
|
||||||
throw new IndexOutOfBoundsException();
|
throw new EmptyStackException();
|
||||||
return front.val;
|
return front.val;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -225,7 +225,6 @@ comments: true
|
|||||||
class LinkedListStack {
|
class LinkedListStack {
|
||||||
private ListNode stackPeek; // 将头结点作为栈顶
|
private ListNode stackPeek; // 将头结点作为栈顶
|
||||||
private int stkSize = 0; // 栈的长度
|
private int stkSize = 0; // 栈的长度
|
||||||
|
|
||||||
public LinkedListStack() {
|
public LinkedListStack() {
|
||||||
stackPeek = null;
|
stackPeek = null;
|
||||||
}
|
}
|
||||||
@ -254,7 +253,7 @@ comments: true
|
|||||||
/* 访问栈顶元素 */
|
/* 访问栈顶元素 */
|
||||||
public int peek() {
|
public int peek() {
|
||||||
if (size() == 0)
|
if (size() == 0)
|
||||||
throw new IndexOutOfBoundsException();
|
throw new EmptyStackException();
|
||||||
return stackPeek.val;
|
return stackPeek.val;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -448,14 +447,20 @@ comments: true
|
|||||||
}
|
}
|
||||||
/* 出栈 */
|
/* 出栈 */
|
||||||
public int pop() {
|
public int pop() {
|
||||||
|
if (isEmpty())
|
||||||
|
throw new EmptyStackException();
|
||||||
return stack.remove(size() - 1);
|
return stack.remove(size() - 1);
|
||||||
}
|
}
|
||||||
/* 访问栈顶元素 */
|
/* 访问栈顶元素 */
|
||||||
public int peek() {
|
public int peek() {
|
||||||
|
if (isEmpty())
|
||||||
|
throw new EmptyStackException();
|
||||||
return stack.get(size() - 1);
|
return stack.get(size() - 1);
|
||||||
}
|
}
|
||||||
/* 访问索引 index 处元素 */
|
/* 访问索引 index 处元素 */
|
||||||
public int get(int index) {
|
public int get(int index) {
|
||||||
|
if (index >= size())
|
||||||
|
throw new EmptyStackException();
|
||||||
return stack.get(index);
|
return stack.get(index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -484,16 +489,20 @@ comments: true
|
|||||||
}
|
}
|
||||||
/* 出栈 */
|
/* 出栈 */
|
||||||
int pop() {
|
int pop() {
|
||||||
int oldTop = stack.back();
|
int oldTop = top();
|
||||||
stack.pop_back();
|
stack.pop_back();
|
||||||
return oldTop;
|
return oldTop;
|
||||||
}
|
}
|
||||||
/* 访问栈顶元素 */
|
/* 访问栈顶元素 */
|
||||||
int top() {
|
int top() {
|
||||||
|
if(empty())
|
||||||
|
throw out_of_range("栈为空");
|
||||||
return stack.back();
|
return stack.back();
|
||||||
}
|
}
|
||||||
/* 访问索引 index 处元素 */
|
/* 访问索引 index 处元素 */
|
||||||
int get(int index) {
|
int get(int index) {
|
||||||
|
if(index >= size())
|
||||||
|
throw out_of_range("索引越界");
|
||||||
return stack[index];
|
return stack[index];
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -521,14 +530,17 @@ comments: true
|
|||||||
|
|
||||||
""" 出栈 """
|
""" 出栈 """
|
||||||
def pop(self):
|
def pop(self):
|
||||||
|
assert not self.is_empty(), "栈为空"
|
||||||
return self.__stack.pop()
|
return self.__stack.pop()
|
||||||
|
|
||||||
""" 访问栈顶元素 """
|
""" 访问栈顶元素 """
|
||||||
def peek(self):
|
def peek(self):
|
||||||
|
assert not self.is_empty(), "栈为空"
|
||||||
return self.__stack[-1]
|
return self.__stack[-1]
|
||||||
|
|
||||||
""" 访问索引 index 处元素 """
|
""" 访问索引 index 处元素 """
|
||||||
def get(self, index):
|
def get(self, index):
|
||||||
|
assert index < self.size(), "索引越界"
|
||||||
return self.__stack[index]
|
return self.__stack[index]
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -539,30 +551,25 @@ comments: true
|
|||||||
type ArrayStack struct {
|
type ArrayStack struct {
|
||||||
data []int // 数据
|
data []int // 数据
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewArrayStack() *ArrayStack {
|
func NewArrayStack() *ArrayStack {
|
||||||
return &ArrayStack{
|
return &ArrayStack{
|
||||||
// 设置栈的长度为 0,容量为 16
|
// 设置栈的长度为 0,容量为 16
|
||||||
data: make([]int, 0, 16),
|
data: make([]int, 0, 16),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Size 栈的长度
|
// Size 栈的长度
|
||||||
func (s *ArrayStack) Size() int {
|
func (s *ArrayStack) Size() int {
|
||||||
return len(s.data)
|
return len(s.data)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsEmpty 栈是否为空
|
// IsEmpty 栈是否为空
|
||||||
func (s *ArrayStack) IsEmpty() bool {
|
func (s *ArrayStack) IsEmpty() bool {
|
||||||
return s.Size() == 0
|
return s.Size() == 0
|
||||||
}
|
}
|
||||||
|
|
||||||
// Push 入栈
|
// Push 入栈
|
||||||
func (s *ArrayStack) Push(v int) {
|
func (s *ArrayStack) Push(v int) {
|
||||||
// 切片会自动扩容
|
// 切片会自动扩容
|
||||||
s.data = append(s.data, v)
|
s.data = append(s.data, v)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pop 出栈
|
// Pop 出栈
|
||||||
func (s *ArrayStack) Pop() any {
|
func (s *ArrayStack) Pop() any {
|
||||||
// 弹出栈前,先判断是否为空
|
// 弹出栈前,先判断是否为空
|
||||||
@ -573,7 +580,6 @@ comments: true
|
|||||||
s.data = s.data[:len(s.data)-1]
|
s.data = s.data[:len(s.data)-1]
|
||||||
return val
|
return val
|
||||||
}
|
}
|
||||||
|
|
||||||
// Peek 获取栈顶元素
|
// Peek 获取栈顶元素
|
||||||
func (s *ArrayStack) Peek() any {
|
func (s *ArrayStack) Peek() any {
|
||||||
if s.IsEmpty() {
|
if s.IsEmpty() {
|
||||||
@ -597,36 +603,29 @@ comments: true
|
|||||||
get size() {
|
get size() {
|
||||||
return this.stack.length;
|
return this.stack.length;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 判断栈是否为空 */
|
/* 判断栈是否为空 */
|
||||||
empty() {
|
empty() {
|
||||||
return this.stack.length === 0;
|
return this.stack.length === 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 入栈 */
|
/* 入栈 */
|
||||||
push(num) {
|
push(num) {
|
||||||
this.stack.push(num);
|
this.stack.push(num);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 出栈 */
|
/* 出栈 */
|
||||||
pop() {
|
pop() {
|
||||||
|
if (this.empty()) throw "栈为空";
|
||||||
return this.stack.pop();
|
return this.stack.pop();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 访问栈顶元素 */
|
/* 访问栈顶元素 */
|
||||||
top() {
|
top() {
|
||||||
|
if (this.empty()) throw "栈为空";
|
||||||
return this.stack[this.stack.length - 1];
|
return this.stack[this.stack.length - 1];
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 访问索引 index 处元素 */
|
/* 访问索引 index 处元素 */
|
||||||
get(index) {
|
get(index) {
|
||||||
|
if (index >= this.size) throw "索引越界";
|
||||||
return this.stack[index];
|
return this.stack[index];
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 返回 Array */
|
|
||||||
toArray() {
|
|
||||||
return this.stack;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -643,36 +642,29 @@ comments: true
|
|||||||
get size(): number {
|
get size(): number {
|
||||||
return this.stack.length;
|
return this.stack.length;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 判断栈是否为空 */
|
/* 判断栈是否为空 */
|
||||||
empty(): boolean {
|
empty(): boolean {
|
||||||
return this.stack.length === 0;
|
return this.stack.length === 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 入栈 */
|
/* 入栈 */
|
||||||
push(num: number): void {
|
push(num: number): void {
|
||||||
this.stack.push(num);
|
this.stack.push(num);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 出栈 */
|
/* 出栈 */
|
||||||
pop(): number | undefined {
|
pop(): number | undefined {
|
||||||
|
if (empty()) throw new Error('栈为空');
|
||||||
return this.stack.pop();
|
return this.stack.pop();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 访问栈顶元素 */
|
/* 访问栈顶元素 */
|
||||||
top(): number | undefined {
|
top(): number | undefined {
|
||||||
|
if (empty()) throw new Error('栈为空');
|
||||||
return this.stack[this.stack.length - 1];
|
return this.stack[this.stack.length - 1];
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 访问索引 index 处元素 */
|
/* 访问索引 index 处元素 */
|
||||||
get(index: number): number | undefined {
|
get(index: number): number | undefined {
|
||||||
|
if (index >= size()) throw new Error('索引越界');
|
||||||
return this.stack[index];
|
return this.stack[index];
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 返回 Array */
|
|
||||||
toArray() {
|
|
||||||
return this.stack;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user