当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > C#数据结构篇(3队列类)

ASP.NET
asp.net GridView控件中模板列CheckBox全选、反选、取消
asp.net GridView 删除时弹出确认对话框(包括内容提示)
asp.net DropDownList 三级联动下拉菜单实现代码
asp DataTable添加列和行的三种方法
Asp.net 页面调用javascript变量的值
asp.net 长文章通过设定的行数分页
asp.net 定时间点执行任务的简易解决办法
asp.net 页面延时五秒,跳转到另外的页面
asp.net 动态输出透明gif图片
asp.net DataList与Repeater用法区别
asp.net Javascript获取CheckBoxList的value
asp.net程序在调式和发布之间图片路径问题的解决方法
asp.net下生成英文字符数字验证码的代码
asp.net 页面版文本框智能提示JSCode (升级版)
ASP.NET URL伪静态重写实现方法
ASP.NET 2.0 中Forms安全认证
asp.net 动态添加多个用户控件
asp.net Repeater显示父子表数据,无闪烁
asp.net 无法获取的内部内容,因为该内容不是文本 的解决方法
asp.net GridView排序简单实现

ASP.NET 中的 C#数据结构篇(3队列类)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 76 ::
收藏到网摘: n/a


C#数据结构篇(3 队列类)
在实现堆栈类之后,我们来实现队列类,其实队列也是链表的扩展,它其实是一种特殊的链表,如堆栈一样,它和堆栈的不同在于,堆栈采用的是先进后出原则,而对列采用的是先进先出原则。什么是先进后出呢?在日常生活中也到处可见它,比如:买火车票,大家都要排队,先来的先买票,后来的在后面排队,在队伍中随便插入是不合法的。等到前面买完之后,自己才可以买票。当然这只是个小实例,队列在程序设计中是基础的编程技术,现在我们来用才C#实现它。如:下图是队列入队和出队的操作过程。
1 在入队过程中: 就是在队列的尾部添加数据,队列数据个数加一,尾指针后移。
2 在出队过程中:就是在队列的头部取的数据后,然后删除该数据,头指针后移。

在下面的程序中用到前面我们编写的list 类 ( C#数据结构篇(1 链表类)),对链表进行操作就可以轻松的实现队列,具体实现如下:
using System;
namespace List
{
///
/// 队列类
///


public class CQueue
{
private Clist m_List;

public CQueue()
{
//构造函数
//这里使用到前面编写的List
m_List=new Clist ();

}

///
/// 入队
///



public void EnQueue(int DataValue)

{
//功能:加入队列,这里使用List 类的Append 方法:
//尾部添加数据,数据个数加1
m_List.Append (DataValue);
}
///
/// 出队
///


public int DeQueue()
{
//功 能:出队
//返回值: 2147483647 表示为空队列无返回
int QueValue;

if (! IsNull())
{
//不为空的队列
//移动到队列的头
m_List.MoveFrist ();
//取得当前的值
QueValue= m_List.GetCurrentValue ();
//删除出队的数据
m_List.Delete ();
return QueValue;
}
return 2147483647;
}
///
/// 判断队列是否为空
///


public bool IsNull()
{
//功能:判断是否为空的队列
return m_List.IsNull ();
}
///
/// 清空队列
///


public void Clear()
{
//清空链表
m_List.Clear ();
}
///
/// 取得队列的数据个数
///


public int QueueCount
{
get
{
//取得队列的个数
return m_List.ListCount ;
}
}
}
}

好了,只要我们编写一个链表类,我们就可以轻松的实现队列了,可以省很多的代码呀。
在Vs.net IDE 英文版编译通过。 好了,就写到这里了,886。(To Be Continu)