首页天道酬勤线性表,栈,队列都是什么结构,线性表和栈队列的联系和区别

线性表,栈,队列都是什么结构,线性表和栈队列的联系和区别

admin 08-12 02:43 249次浏览
一、栈,队列,线性表的区别

栈只有入栈和出栈操作,队列也只有入队和出队操作,相比于线性表,站和队列都是操作受限的线性表。
栈:先进后出。用于调用函数时,网页搜索等等
队列:先进先出,后进后出。当需要按顺序处理元素时

二、用顺序表实现栈 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; } /// <summary> /// 得到栈长度 /// </summary> /// <returns></returns> public int GetLength() { return (pop + 1); 快三单双大小三期必中ta=new T[size]; pop = -1; } public SeqStack() : this(10) { } public int Count { get { return (pop + 1); } } public void Clear() { pop = -1; } /// <summary> /// 得到栈长度 /// </summary> /// <returns></returns> public int GetLength() { return (pop + 1); } /// <summary> /// 取栈顶元素 /// </summary> /// <returns></returns> public T Peek() { T temp = data[pop]; return temp; } /// <summary> /// 出栈 /// </summary> /// <returns></returns> public T Pop() { T temp = data[pop]; pop--; return temp; } /// <summary> /// 入栈 /// </summary> /// <param name="item">元素</param> 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; } /// <summary> /// 取得栈顶元素 /// </summary> /// <returns></returns> public T Peek() { return lastNode.Data; } /// <summary> /// 出栈 /// </summary> /// <returns></returns> public T Pop() { T temp = lastNode.Data; lastNode = lastNode.Front; count--; return temp; } /// <summary> /// 入栈 /// </summary> /// <param name="item"></param> 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<string> stack=new Stack<string>(); //LinkStack<string> stack=new LinkStack<string>(); 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(); } }}
html5中vedio支不支持rtmpC#如何实现INotifyPropertyChanged接口解决IDEA和CMD中java命令提示错误: 找不到或无法加载主类的问题UGUI实现ScrollView无限滚动效果
栈和队列的主要特点,栈与队列的共同特点 栈与队列实验,阐述栈与队列数据结构的概念及其特点
相关内容