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

网站建设遵循的原则网站有哪些区别

网站建设遵循的原则,网站有哪些区别,各地人社app大全官网,公司网站做首页大图目录 一、涉及到的知识点 1.C#中的队列类 2.自定义队列的方法 &#xff08;1&#xff09;先设计一个CList<T>类 &#xff08;2&#xff09;再设计CQueue<T>类 二、自定义队列CQueue<T>类的实例 一、涉及到的知识点 1.C#中的队列类 在C#中实现队列类&a…

目录

一、涉及到的知识点

1.C#中的队列类

2.自定义队列的方法

(1)先设计一个CList<T>类

(2)再设计CQueue<T>类

二、自定义队列CQueue<T>类的实例


一、涉及到的知识点

1.C#中的队列类

        在C#中实现列类,其实队列也是链表的扩展,它是一种特殊的链表,如堆栈一样。它与堆栈的不同在于,堆栈采用的是先进后出原则,而队列采用的是先进先出原则。

        和栈相反,队列是先进先出的线性表,只允许在表的一端进行插入,而在另一端删除元素。在队列中,允许插入的一端叫做队尾,允许删除的一端称为队头。 在队列的实现过程中主要有两个操作,即入队和出队,具体如下:

  • 入队就是在队列的尾部添加数据,队列数据个数加1,尾指针后移。
  • 出队就是在队列的头部取数据,然后删除该数据,头指针后移。

2.自定义队列的方法

(1)先设计一个CList<T>类

        在这个CList<T>类的实现使用了一个私有内部类Node来表示链表中的节点。每个Node实例包含一个值(Value)和一个指向下一个节点的引用(Next)。

        CList<T>类提供了以下方法:

  • AddLast(T item):将一个元素添加到链表的末尾。
  • RemoveFirst():从链表的头部移除一个节点。如果链表为空,将抛出InvalidOperationException异常。
  • Count:获取链表中的元素数量。
  • Clear():清空链表。

(2)再设计CQueue<T>类

         在这个C#队列类CQueue<T>的实现,使用了链表类(CList)作为底层数据结构。

        这个CQueue<T>类提供了以下方法:

  • EnQueue(T item):将一个元素添加到队列的末尾。
  • DeQueue():从队列的头部移除一个元素并返回它。如果队列为空,将抛出InvalidOperationException异常。
  • Clear():清空队列。
  • QueueCount():返回队列中的元素数量。

二、自定义队列CQueue<T>类的实例

         这个实例是通用的,因为程序中使用的链表、队列都使用的泛型方法,适合用于任何数据类型。本实例仅起到抛砖引玉的作用,有需要的网友,可以在链表类中丰富类中的方法,对应地在队列中实现该方法。于是,以不变应万变,无往而不利。

// 自定义队列类其中引用自定义的链表类的方法
namespace _134_2
{/// <summary>/// 自定义链表类/// </summary>/// <typeparam name="T">泛型运算符</typeparam>public class CList<T>{private class Node(T value){public T Value = value;public Node? Next;}private Node? _head;private int _count;public CList(){_head = null;_count = 0;}public void AddLast(T item){var newNode = new Node(item);if (_head == null){_head = newNode;}else{var current = _head;while (current.Next != null){current = current.Next;}current.Next = newNode;}_count++;}public void RemoveFirst(){if (_head == null){throw new InvalidOperationException("链表为空,无法移除元素。");}var removedNode = _head;_head = removedNode.Next;_count--;}public int Count{get { return _count; }}public void Clear(){_head = null;_count = 0;}public T FirstOrDefault(){if (Count == 0){throw new InvalidOperationException("列表为空,无法获取第一个元素。");}return Peek();}public T Peek(){if (_count == 0){throw new InvalidOperationException("The list is empty, cannot get the first element.");}return _head!.Value;}}/// <summary>/// 自定义队列类/// 引用链表类CList<T>的方法/// </summary>/// <typeparam name="T">泛型运算符</typeparam>public class CQueue<T>{private readonly CList<T> _queue;public CQueue(){_queue = new CList<T>();}public void EnQueue(T item){_queue.AddLast(item);}public T DeQueue(){if (_queue.Count == 0){throw new InvalidOperationException("队列为空,无法出队。");}T item = _queue.FirstOrDefault();_queue.RemoveFirst();return item;}public void Clear(){_queue.Clear();}public int QueueCount{get{return _queue.Count;}}}class Program{static void Main(string[] args){ArgumentNullException.ThrowIfNull(args);CQueue<int> queue = new();// 向队列中添加元素queue.EnQueue(1);queue.EnQueue(2);queue.EnQueue(3);// 查看队列中的元素数量Console.WriteLine("队列中的元素数量: " + queue.QueueCount);// 弹出第一个元素int dequeuedItem1 = queue.DeQueue();Console.WriteLine("弹出的第一个元素: " + dequeuedItem1);// 再次查看队列中的元素数量Console.WriteLine($"队列中的元素数量: {queue.QueueCount}");// 弹出剩余的元素int dequeuedItem2 = queue.DeQueue();Console.WriteLine("弹出的第二个元素: " + dequeuedItem2);int dequeuedItem3 = queue.DeQueue();Console.WriteLine("弹出的第三个元素: " + dequeuedItem3);// 清空队列queue.Clear();// 查看队列是否为空Console.WriteLine($"队列是否为空: {queue.QueueCount}");}}
}
//运行结果:
/*
队列中的元素数量: 3
弹出的第一个元素: 1
队列中的元素数量: 2
弹出的第二个元素: 2
弹出的第三个元素: 3
队列是否为空: 0*/

http://www.yayakq.cn/news/328014/

相关文章:

  • 网站弹出广告代码公司注册资金实缴后多久可以取出
  • 网站设计影响seo的因素鄂州门户网
  • 服务器网站搬家网站不设置关键词描述
  • 免费建立个人网站的哪些平台好男女做羞羞事漫画网站免费
  • 海口兼职网站一屏一屏的网站怎么做
  • 网站开发需求收集 模板免费咨询法律问题的网站
  • 网站好坏怎么分析网络推广培训课程内容
  • wordpress 配置ssl佛山网站运营十年乐云seo
  • 自己的电脑做网站会收录吗怎么做阿里巴巴国际网站首页
  • 网站建设平台软件哪个好用国外优秀网站欣赏
  • 南通专业网站建设公司米拓建站
  • 慈溪做网站做信息网站怎么赚钱
  • 北京天仪建设工程质量检测所网站ocr是不是用于制作网页的软件
  • 黄冈网站建设策划中国做的手机系统下载网站
  • 网站的宣传方法有哪些推广做网站联系方式
  • 做自己网站网站开发文本模版
  • 网站专题策划wordpress 定义数据表
  • 网站图片倒计时怎么做的国际新闻最新战争消息
  • 商丘企业网站建设团队武威网站制作公司哪个好
  • 做响应式网站哪家公司好wordpress鼠标悬停图片
  • 网站押金收回怎么做分录服务器地址在哪里看
  • 阿里巴巴网站导航栏怎么做在线设计平台的技术支持
  • wordpress建站比较百度网络营销的概念和含义
  • 网站集约化建设工作讲话wordpress博客手机新闻模板
  • 外贸做编织袋常用网站wordpress c7v5主题
  • 网站的站点建设为什么网站需要备案
  • 建设营销型网站公司wordpress做新闻cms
  • 泉州建站方案个人网站 商业
  • vs做网站个人建购物网站怎么备案
  • 没有营业执照可以建设网站佛山企业网站建设教程