C#集合练习题(链表LinkedListT)
封装一个集合
提供push(T value)在尾部添加新元素,
pop()删除并返回最后一个元素,、
shift()删除并返回第一个元素,
unshift(T value)在首位添加新元素;
底层用链表模式保存数据
实现用foreach循环自定义集合
class MyCollecion<T> : IEnumerable<T>{LinkedList<T> arr = new LinkedList<T>();public LinkedListNode<T> First{get{return arr.First;}}//在尾部添加新元素public void Push(T value){arr.AddLast(value);}//删除并返回最后一个元素public T Pop(){LinkedListNode<T> node = arr.Last;arr.RemoveLast();return node.Value;}//删除并返回第一个元素,public T Shift(){LinkedListNode<T> node = arr.First;arr.RemoveFirst();return node.Value;}//在首位添加新元素public void Unshift(T value){arr.AddFirst(value);}public IEnumerator<T> GetEnumerator(){return new Enumtor<T>(this);}IEnumerator IEnumerable.GetEnumerator(){throw new NotImplementedException();}}/// <summary>/// 迭代器/// </summary>/// <typeparam name="T"></typeparam>internal class Enumtor<T> : IEnumerator<T>{private MyCollecion<T> myCollecion;LinkedListNode<T> node;public Enumtor(MyCollecion<T> myCollecion){this.myCollecion = myCollecion;this.node = myCollecion.First;//初始化指向头节点}public T Current{get{LinkedListNode<T> tempNode = node;node = node.Next;return tempNode.Value;}}object IEnumerator.Current{get{return this;}}public void Dispose(){Console.WriteLine();}public bool MoveNext(){//如果节点不为空 if (node != null){return true;}return false;}public void Reset(){this.node = myCollecion.First;}}
测试类:
C#集合练习题(链表LinkedListT)相关推荐
- Java集合框架篇-63-TreeSet集合练习题
这篇,我们通过前面学习的TreeSet集合和比较器的知识,我们来做几个练习题.在完成练习过程中,我们重点放在问题分析这个步骤上面,只有分析的思路的正确性,才能写出正确的代码,完成编程练习题. 第一题 ...
- Python字典与集合练习题
学习中遇到这样一个练习题,统计需要取快递人员名单.原题如下: 统计需要取快递人员的名单:"双十一"过后,某公司每天都能收到很多快递,门卫小李想编写一个程序统计收到快递人员的名单,以 ...
- Java——集合(练习题)
例题1:产生10个1~20之间的随机数,要求随机数不能重复 import java.util.HashSet; import java.util.Random; public class Test1 ...
- python基础系列教程——数据结构(列表、元组、字典、集合、链表)
全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 基本顺序存储结构--列表与元组 Python中的基本顺序存储结构是列表与元组,在操作的复杂度上和数组完全相同,其中列表是可变数据类型, ...
- 【数据结构】【实验作业05】求两个集合的并集、交集、差集,集合用链表
返回临时对象会执行析构函数 我的解决方法时在函数内部用类指针,返回类指针就不会有问题了. 不知道大家还有没有其他解决方法. 复制构造函数和重载=的区别 这里不讲述为什么要使用复制构造函数和重载=(自行 ...
- Map集合练习题(坐公交车)
题目要求 [1]将以下车站对应关系的数据存储到map集合中, key:表示站编号,value:表示站名, 并遍历打印(可以不按顺序打印): 站编号和站名对应关系如下: 1 朱辛庄 2 育知路 3 平西 ...
- scala详细笔记(七)scala集合练习题 [函数练习题][scala案例][scala练习]
0 经典WorkCount案例 统计文本文件中单词出现的次数 import scala.io.Source import scala.reflect.io.File /*** @Author 多易教育 ...
- python——集合练习题(华为笔试题)
题目内容: 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1-1000之间的随机整数(N<=1000),N是用户输入>的,对于其中重复的数字,只保留一 ...
- Java集合练习题——使用List存储10个学生信息。(学生信息:姓名,年龄,成绩。统计所有姓“张”的同学的平均成绩。)
目录 1.引言 2.代码实现 1.引言 看题目获取关键信息,首先创建一个学生类,定义三个成员属性姓名.年龄.成绩,定义有参无参构造方法和get.set方法,并重写toString方法.创建测试类进行测 ...
- java集合单向链表_Java实现单向链表数据结构
本文章同步到本人的博客站点 燕归来 链表是一种数据结构,和数组同级.比如,Java中我们使用的ArrayList,其实现原理是数组.而LinkedList的实现原理就是链表了.链表在进行循环遍历时效率 ...
最新文章
- [RabbitMQ+Python入门经典] 兔子和兔子窝
- Javascript is based on signal thread
- 信息学奥赛一本通C++语言——1077:统计满足条件的4位数
- Numpy数据的操作 * dot() multiply() 的区别
- 软件测试行业发展前景怎么样?
- 漫谈软件系统测试——缺陷分析
- 《Head First HTML and CSS 》中英文下载链接
- vue当前浏览器是否为ie_vue项目检测IE浏览器版本,版本太低给出提示
- java dwg转pdf_java实现CAD图纸文件DWG格式转为PDF格式
- C# 绘制矩形方框读写内存类 cs1.6人物透视例子
- mysql.sock 路径_关于mysql.sock路径的问题
- python随机生成一个数字_如何实现python随机生成数字?
- linux系统硬盘 转换格式,怎么在LINUX系统里修改硬盘格式呢?
- Spring源码分析系列——bean创建过程分析(三)——工厂方法创建bean
- 来自北京大学NOIP金牌选手yxc的常用代码模板1——基础算法
- Android 8.1 【FriendlyARM】编译环境搭建与镜像烧写
- SCI期刊写作必备(二):代码|手把手绘制目标检测领域YOLO论文常见的性能对比折线图,一键生成YOLOv7等主流论文同款图表,包含多种不同功能风格对比图表
- ArcGIS10.8下载及安装教程(附安装步骤)
- 辕剑之汉之云插曲计算机谱子,轩辕剑之汉之云主题曲_插曲_片尾曲_背景音乐所有歌曲歌词MV...
- 学考高考照片批量重命名,将以姓名命名改为以身份证+姓名命名