스 택, 대기 열, 선형 표 의 차이 와 용도, 그리고 순서 표 와 링크 로 스 택 을 실현 합 니 다.
스 택 은 스 택 에 들 어 가 는 것 과 스 택 에서 나 가 는 것 만 작업 하고 대기 열 은 입 대 와 나 가 는 것 만 작업 하 며 선형 표 에 비해 역 과 대기 열 은 모두 조작 이 제 한 된 선형 표 이다.창고: 먼저 들 어가 서 나 가세 요.함 수 를 호출 할 때 웹 검색 등 대기 열: 먼저 나 오고 나중에 나 옵 니 다.원 소 를 순서대로 처리 해 야 할 때
2. 순서 표 로 스 택 실현
using System; using System.Collections.Generic; using System.Text; namespace { class SeqStack<T> : IStackDS<T> { private T[] data; private int pop; // public SeqStack(int size) { data=new T[size]; pop = -1; } public SeqStack() : this(10) { } public int Count { get { return (pop + 1); } } public void Clear() { pop = -1; } ///
/// /// ///
public int GetLength() { return (pop + 1); } /// /// /// ///
public T Peek() { T temp = data[pop]; return temp; } /// /// /// ///
public T Pop() { T temp = data[pop]; pop--; return temp; } /// /// /// /// public void Push(T item) { data[pop + 1] = item; pop++; } } }
三、用链表实现栈
using System; using System.Collections.Generic; using System.Text; namespace { class LinkStack<T> : IStackDS<T> { private Node<T> head; // private int count; // private Node<T> lastNode; // public LinkStack() { head = null; count = 0; lastNode = null; } public int Count { get { return count; } } public void Clear() { head = null; count = 0; } public int GetLength() { return count; } ///
/// /// ///
public T Peek() { return lastNode.Data; } /// /// /// ///
public T Pop() { T temp = lastNode.Data; lastNode = lastNode.Front; count--; return temp; } /// /// /// /// public void Push(T item) { Node<T> node=new Node<T>(item); if (head == null) { head = node; lastNode = node; count++; } else { lastNode.Next = node; // node.Front = lastNode; // lastNode = node; // count++; // } } } }
最后输出显示正确
class Program
{
static void Main(string[] args)
{
//Stack stack=new Stack();
//LinkStack stack=new LinkStack();
LinkStack<string> stack=new LinkStack<string>();
stack.Push(" ");
stack.Push(" ");
stack.Push(" ");
string str = stack.Peek();
string str_2 = stack.Pop();
string str_3 = stack.Pop();
int str_4 = stack.Count;
stack.Clear();
int str_5 = stack.Count;
Console.WriteLine(str);
Console.WriteLine(str_2);
Console.WriteLine(str_3);
Console.WriteLine(str_4);
Console.WriteLine(str_5);
Console.ReadKey();
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.