using System;
using System.Collections.Generic;
using System.Text;
namespace Link
{
//结构:
public struct structData
{
public string sStr;
public int iInt;
}
//实现链表:
public class myLink
{
//Begin:内部类:定义链表:
public class Link
{
private structData sd;
private Link next;
public Link()
{
}
public Link(structData sd0)
{
next = null;
sd = sd0;
}
public structData Sd
{
get
{
return sd;
}
set
{
sd = value;
}
}
public Link Next
{
get
{
return next;
}
set
{
next = value;
}
}
}
//End:内部类:定义链表
private Link link;
public myLink()
{
link = null;
}
public Link LINK
{
get { return link; }
set { link = value; }
}
//添加一个结点:
public void Add(structData sd)
{
Link l = new Link();
l.Sd = sd;
l.Next = link; //这2句是链表的核心代码
link = l;
}
//输出一个结点(先进先出):
public structData Peek()
{
Link Currlink = link;
while (Currlink.Next != null)
{
Currlink = Currlink.Next;
}
structData sd = Currlink.Sd;
return sd;
}
//删除首结点:
public void DeleteFirst()
{
Link Prevlink = link;
Link Currlink = link;
Currlink = Prevlink.Next;
while (Currlink.Next != null)
{
Prevlink = Currlink;
Currlink = Prevlink.Next;
}
Prevlink.Next = null;
}
//迭代器:
public System.Collections.IEnumerator GetEnumerator()
{
Link lk = link;
while (lk != null)
{
yield return lk;
lk = lk.Next;
}
}
}
class Program
{
static void Main(string[] args)
{
myLink lnk = new myLink();
structData sd1;
sd1.sStr = “s1“;
sd1.iInt = 1;
lnk.Add(sd1);
structData sd2;
sd2.sStr = “s2“;
sd2.iInt = 2;
lnk.Add(sd2);
structData sd3;
sd3.sStr = “s3“;
sd3.iInt = 3;
lnk.Add(sd3);
structData sd4;
sd4.sStr = “s4“;
sd4.iInt = 4;
lnk.Add(sd4);
structData sd5;
sd5.sStr = “s5“;
sd5.iInt = 5;
lnk.Add(sd5);
Console.WriteLine(“所有数据:“);
foreach (myLink.Link lk in lnk)
{
Console.Write(lk.Sd.sStr + “, “);
Console.WriteLine(lk.Sd.iInt.ToString());
}
Console.WriteLine(“显示队列首数据:“);
structData sd01 = lnk.Peek();
Console.WriteLine(sd01.sStr);
Console.WriteLine(sd01.iInt.ToString());
Console.WriteLine(“删除队列首数据后,显示队列新的首数据:“);
lnk.DeleteFirst();
structData sd02 = lnk.Peek();
Console.Write(sd02.sStr + “, “);
Console.WriteLine(sd02.iInt.ToString());
Console.WriteLine(“再次删除队列首数据后,显示队列新的首数据:“);
lnk.DeleteFirst();
structData sd03 = lnk.Peek();
Console.Write(sd03.sStr + “, “);
Console.WriteLine(sd03.iInt.ToString());
Console.WriteLine(“这时队列的所有数据:“);
foreach (myLink.Link lk in lnk)
{
Console.Write(lk.Sd.sStr + “, “);
Console.WriteLine(lk.Sd.iInt.ToString());
}
Console.ReadLine();
}
}
}
电脑学习网 http://www.why100000.com
张庆 2007.5.29
分享到:
相关推荐
使用C#使用循环队列,压缩包里包含源代码以及测试类。
多级反馈队列进程调度模拟器 C#语言 有界面 程序源代码
基于rabbitmq实现的消息队列组件,附所有源代码,大家可以放心的使用,可用于商业程序,欢迎大家交流。
进程间通讯(两个应用程序如何通讯)C#源代码 消息传递 message-passing:通过操作系统的相应系统调用进行消息传递通讯。分为直接和间接两种: 直接通信方式:点到点的发送 Send (DestProcessName, Message); ...
各种数据结构、算法及实用的C#源代码 C#,大规模图(Large Graph)的均匀成本搜索之迪杰斯特拉(Dijkstra)算法与源代码 均匀成本搜索是迪杰斯特拉算法的变体。这里,我们不是将所有顶点插入到一个优先级队列中,...
源代码,学习用。 public delegate void ReportEventHandler(object sender, ReportEventArgs e); //声明一个事件的指代(指针) public delegate void SMSEventHandler(object sender, SMSEventArgs e); //声明...
该资源是6个消息队列项目源码,项目功能齐全,代码书写规范详细,值得大家下载下来学习借鉴保存都可以,非常的有价值
二叉树 队列 堆栈 列表等数据结构的演示代码
有关数据结构的经典C#代码,包括单链表、栈和队列、二叉树的经典源代码。
在C#中,有多种进程间通信(Inter-Process Communication,IPC)的技术。以下是一些主要的通信方式: 1.命名管道(Named Pipes) 2.套接字(Sockets) 3.共享内存(Shared Memory) 4.信号量(Semaphore) 5.消息...
1.企微会话存档数据官方解析处理流程,多线程同步,保证速度和效率 2.注释清晰,开箱即用 3.默认实时记录seq队列值,增量运行 4.动态同步指定范围数据 5.cos文件上传 6.es数据存储 7.敏感词过滤
★ 程序说明:★ ☆ 网站技术:☆ 架构体系: 数据访问层 (Data Access Layer) (LINQ to SQL 实现) 存储库层 (Repository Layer) (Repository 模式 实现) 服务层 (Service Layer) ...- [源代码] - [程序运行说明]
这个爬虫用实验室十台电脑一起干活,可随时添加删除机器,具有良好的伸缩性,为了能够实现断点续爬和多台电脑之间的协作使用了Redis作队列, 为了保证不重复爬取使用Redis作hash表,所有爬取的任务都放到hash表中进行...
这些示例还尝试使用一种C#编程的功能样式,而不是命令式的样式。 函数样式的常见示例是在for和foreach类的循环结构上使用LINQ运算符。 原始代码库是使用.Net Framework 4.0或4.6构建的。 该代码库是使用.Net Core ...
《C#开发实例大全(基础卷)》筛选、汇集了C#开发从基础知识到高级应用各个层面约600个实例及源代码,每个实例都按实例说明、关键技术、设计过程、详尽注释、秘笈心法的顺序进行了分析解读。全书分6篇共25章,主要...
利用生产者消费者问题来解决银行抽签排队的问题,通常在银行中存在多个抽签机及多个服务窗口,我们把抽签机相当于生产者,服务窗口相当于消费者,客户抽签后进入一个等待队列。要求对等待队列实现同步访问,即:队空...
可以使用部署工具将服务器部署到 GameLift,并创建一个队列。一个或多个客户端可以在您的本地计算机上运行,它们可以连接到舰队以加入游戏。当一些玩家到达时,游戏就可以开始了。在这里,您可以看到单个玩家...
该资料是《Visual C++ 2010入门经典(第5版)》的源代码及课后练习答案 对应的书籍资料见: Visual C++ 2010入门经典(第5版) 基本信息 原书名: Ivor Horton's Beginning Visual C++ 2010 原出版社: Wrox 作者: ...
└ C#源代码第三部分多线程 ├─1-多线程 ├─2-多线程 ├─3-多线程互斥 ├─4-多线程互斥 ├─5-多线程互斥 ├─chap09-多线程 ├─D00-多线程 ├─Windows多线程编程技术与实例 ... ... ├─多线程,多接收...
内含线性表、栈和队列、串、数组和广义表、树和二叉树、图、查找、内排序源程序以及讲解课件