当前位置: 首页 > news >正文

南京做网站公司 雷仁专门做汽车内饰的网站

南京做网站公司 雷仁,专门做汽车内饰的网站,提供网页制作平台的公司,能自己制作图片的app堆栈(Stack)最明显的特征就是“先进后出”#xff0c;本质上讲堆栈也是一种线性结构#xff0c;符合线性结构的基本特点#xff1a;即每个节点有且只有一个前驱节点和一个后续节点。 相对前面学习过的顺序表、链表不同的地方在于#xff1a;Stack把所有操作限制在只能…堆栈(Stack)最明显的特征就是“先进后出”本质上讲堆栈也是一种线性结构符合线性结构的基本特点即每个节点有且只有一个前驱节点和一个后续节点。 相对前面学习过的顺序表、链表不同的地方在于Stack把所有操作限制在只能在线性结构的某一端进行而不能在中间插入或删除元素。下面是示意图 从示意图中可以看出堆栈有二种实现方式基于数组的顺序堆栈实现、类似链表的链式堆栈实现 先抽象堆栈的接口IStack: namespace 栈与队列 {public interface IStackT{/// summary/// 返回堆栈的实际元素个数/// /summary/// returns/returnsint Count();/// summary/// 判断堆栈是否为空/// /summary/// returns/returnsbool IsEmpty();/// summary/// 清空堆栈里的元素/// /summaryvoid Clear();/// summary/// 入栈将元素压入堆栈中/// /summary/// param nameitem/paramvoid Push(T item);/// summary/// 出栈从堆栈顶取一个元素并从堆栈中删除/// /summary/// returns/returnsT Pop();/// summary/// 取堆栈顶部的元素(但不删除)/// /summary/// returns/returnsT Peek();} }顺序堆栈(SeqStack)的实现 using System; using System.Text;namespace 栈与队列 {public class SeqStackT:IStackT{private int maxsize;private T[] data;private int top; public SeqStack(int size) {data new T[size];maxsize size;top -1;}#region //接口实现部分public int Count() {return top 1;}public void Clear() {top -1;}public bool IsEmpty() {return top -1;}public void Push(T item){if (IsFull()){Console.WriteLine(Stack is full);return;}data[top] item;}public T Pop(){T tmp default(T);if (IsEmpty()){Console.WriteLine(Stack is empty);return tmp;}tmp data[top];top--;return tmp;}public T Peek(){if (IsEmpty()){Console.WriteLine(Stack is empty!);return default(T);}return data[top];}#endregionpublic bool IsFull() {return top maxsize - 1;}public override string ToString(){StringBuilder sb new StringBuilder();for (int i top;i0;i--){sb.Append(data[i] ,);}return sb.ToString().Trim(,);} } } 链式堆栈(LinkStack)的实现 先定义节点Node.cs namespace 栈与队列 {public class NodeT{private T data;private NodeT next;public Node(T data, NodeT next) {this.data data;this.next next;}public Node(NodeT next) {this.next next;this.data default(T);}public Node(T data) {this.data data;this.next null;}public Node() {this.data default(T);this.next null;}public T Data {get { return this.data; }set { this.data value; }}public NodeT Next {get { return next; }set { next value; }}} }下面是LinkStack.cs using System; using System.Text;namespace 栈与队列 {public class LinkStackT:IStackT{private NodeT top;private int num;//节点个数/// summary/// 顶部节点/// /summarypublic NodeT Top {get { return top; }set { top value; }}public LinkStack() {top null;num 0;}public int Count() {return num;}public void Clear() {top null;num 0;}public bool IsEmpty() {if (top null num 0){return true;}else {return false;}}public void Push(T item) {NodeT q new NodeT(item);if (top null){top q;}else {q.Next top;top q;}num;}public T Pop() {if (IsEmpty()) {Console.WriteLine(Stack is empty!);return default(T);}NodeT p top;top top.Next;num--;return p.Data;}public T Peek() {if (IsEmpty()) {Console.WriteLine(Stack is empty!);return default(T);}return top.Data;}public override string ToString(){StringBuilder sb new StringBuilder();if (top ! null) {sb.Append(top.Data.ToString() ,);NodeT p top;while (p.Next ! null){ sb.Append(p.Next.Data.ToString() ,);p p.Next;}}return sb.ToString();}} }测试代码片段 Console.WriteLine(顺序堆栈测试开始...);SeqStackint seqStack new SeqStackint(10);seqStack.Push(1);seqStack.Push(2);seqStack.Push(3);Console.WriteLine(seqStack);Console.WriteLine(seqStack.Peek());Console.WriteLine(seqStack);Console.WriteLine(seqStack.Pop());Console.WriteLine(seqStack);Console.WriteLine(链堆栈测试开始...);LinkStackint linkStack new LinkStackint();linkStack.Push(1);linkStack.Push(2);linkStack.Push(3);Console.WriteLine(linkStack);Console.WriteLine(linkStack.Peek());Console.WriteLine(linkStack);Console.WriteLine(linkStack.Pop());Console.WriteLine(linkStack);Console.ReadLine();.Net中System.Collections.Generic.StackT已经提供了堆栈的基本实现明白原理后仍然推荐大家使用内置的实现。转载于:https://www.cnblogs.com/yjmyzz/archive/2010/10/30/1865212.html
http://www.zqtcl.cn/news/859604/

相关文章:

  • 贵阳网站建设搜q479185700大学网站栏目建设
  • 开发网站找什么公司吗电影网站域名
  • 网站栏目设计怎么写黑龙江建设网官
  • 网站主页设计素材php企业门户网站模板
  • 管理外贸网站模板wordpress live-2d
  • 哈尔滨优化网站方法网站栏目功能分析
  • diy定制网站wordpress 做表格
  • 怎么建设个网站佛山网站设计
  • 饰品企业网站建设做网站管理系统
  • 网站制作的关键技术网站开发网页设计北京师范大学出版社
  • 南宁北京网站建设网站代理合作
  • 网站备案要多少钱包装设计接单网站
  • 涵江网站建设超市营销型网站建设策划书
  • 无锡定制网站建设织梦笑话网站
  • 网站开发的安全性原则潍坊 logo设计公司
  • 宜春市城乡规划建设局网站网站设计师联盟
  • 重庆施工员证查询网站广告设计专业认知报告
  • 网站建设费用要多少黑糖不苦还做网站么
  • 公司网站改版 目的好知网做网站
  • 华强北手机网站建设哈尔滨网站建设oeminc
  • 公司简介网站模板新浪云存储 wordpress
  • 阿里云个人网站建设威海建设集团网站
  • 湖南城乡住房建设厅网站中石化网站群建设
  • 网站关键词怎么做排名大连网站建设方案案例
  • 西安做网站上海建设资质审批网站
  • 平阳高端网站建设广州凡科公司是外包吗
  • 购物网站项目经验公司的八个主要部门
  • 绿色大气网站模板株洲58同城网站建设电话
  • 网站建设 总体思路福州建设高端网站
  • 做网站需要什么配置北京工信部网站备案查询