数据结构C#顺序表资料.docx
- 文档编号:2910917
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:34
- 大小:1.92MB
数据结构C#顺序表资料.docx
《数据结构C#顺序表资料.docx》由会员分享,可在线阅读,更多相关《数据结构C#顺序表资料.docx(34页珍藏版)》请在冰豆网上搜索。
数据结构C#顺序表资料
实验报告
课程名称:
数据结构与数据库应用基础教程
系部名称:
专业班级:
学生姓名:
学号:
指导教师:
黑龙江工程学院教务
实验项目
线性表的控制台程序及窗体
实验日期
2015-10-28
实验地点
实验楼612
同组人数
5
实验类型
□传统实验☑现代实验□其他
□验证性□综合性☑设计性□其他
□自立式☑合作式□研究式□其他
一、实验目的
编写线性表中顺序表的控制台应用程序及其实现Windows窗体化。
利用控制台应用程序实现求顺序表的长度,清空顺序表,判空顺序表,判满顺序表,在顺序表末尾添加元素,在顺序表i位置插入元素,删除顺序表的i个未知的元素,获取第i个数据元素,在顺序表中查找值为value的数据元素。
二、实验仪器设备
Microsoft VisualStudio2010
三、实验原理、内容及步骤
利用Microsoft VisualStudio2010编写控制应用程序和Windows窗体。
:
(输入一个新的顺序表并提示生成成功)
:
(顺序表先进行排序的操作)
:
(顺序表生成的同时会提醒进行下一步骤的操作,并且以后的每一步操作都会提示。
不过接下来的截图都会略过提示)
:
(同时输入插入的元素数据和位置显示出结果)
:
(不过在此窗体中要同时输入插入的元素和位置才可以生成正确的顺序表,不然会出现上图所示的错误)
:
(输入要删除的元素的位置输出结果)
四、实验中存在的问题、解决方法及进一步的想法等
1.开始不知道怎么编写代码通过输入数据创建一个新的顺序表,后来通过请教同学知道了用追加(append)的方法创建一个新的顺序表。
2.不知道怎么给顺序表排序,通过上网了解了可以用冒泡法进行排序。
3.最后编写程序时不知道怎么把经过操作的程序结果输出,用for(inti=0;i<=last;i++)就可以实现了。
4.在开始做窗体的时候以为每做一个控件就要输入代码,结果发现没有这个必要,在用button控件的时候再把代码输入进去就行了。
5.不知道用什么代码读取输入的顺序表,发现用new运算符可以实现。
6.最后不知道报错的程序该写在哪里,还是请教同学才搞明白。
五、教师评语
成绩
指导教师签字:
年月日
注:
1、此报告为参考格式,各栏项目可根据实际情况进行调整;
2、实验成绩以优(90~100)、良(80~89)、中(70~79)、及格(60~69)、不及格(60以下)五个等级评定。
附录
控制台应用程序;
usingSystem;
namespace顺序表_CSharp
{
classProgram
{
#region方法
//程序主入口
publicstaticvoidMain(string[]args)
{
Console.Write("请输入顺序表的长度:
");
intb=Convert.ToInt32(Console.ReadLine());
//创建并实例化顺序表类,为了方便演示,此处使用整数
SeqList
Console.Write("请输入序列表La的第1个成员:
");
//把输入的元素追加到序列表La中;
stringn=null;
do
{
intm=Convert.ToInt32(Console.ReadLine());
if(SL.GetLength()+1>b)
{
Console.WriteLine("您输入的序列表La的元素个数大于序列表La的容量!
!
!
");
Console.ReadKey();
break;
}
SL.Append(m);
Console.Write("是否继续为序列表La加入成员:
(是:
y,否:
n)");
n=Console.ReadLine();
if(n=="y")
{
Console.Write("请输入序列表La新加入的成员:
");
}
}while(n=="y");
//保存用户输入的值的变量
stringinput;
intpos;
intnum;
while(true)
{
Console.WriteLine("请输入您要执行的操作编号:
");
Console.WriteLine("1.获取顺序表中当前数据元素的个数");
Console.WriteLine("2.删除顺序表中所有数据元素");
Console.WriteLine("3.在顺序表的尾部追加一个数据元素");
Console.WriteLine("4.在顺序表指定位置插入一个数据元素");
Console.WriteLine("5.删除顺序表中指定位置的数据元素");
Console.WriteLine("6.获取顺序表中指定位置的数据元素");
Console.WriteLine("7.在顺序表中对数据元素进行按值查找");
Console.WriteLine("8.打印顺序表中所有数据元素");
Console.WriteLine("9.查找顺序表中最大的数据元素");
Console.WriteLine("10.对顺序表进行升序排序");
Console.WriteLine("11.删除顺序表中重复的数据元素");
input=Console.ReadLine();
//对用户输入的操作编号进行处理
switch(input)
{
case"1":
Console.WriteLine("当前顺序表中的数据元素个数为:
{0}",SL.GetLength());
break;
case"2":
SL.Clear();
Console.WriteLine("顺序表中的数据元素已经被全部删除!
");
break;
case"3":
Console.Write("请输入一个整数以追加在顺序表尾部:
");
if(int.TryParse(Console.ReadLine(),outnum))
{
SL.Append(num);
SL.PrintAllElem();
}
break;
case"4":
Console.Write("请输入一个整数:
");
if(int.TryParse(Console.ReadLine(),outnum))
{
Console.Write("请输入插入位置:
");
if(int.TryParse(Console.ReadLine(),outpos))
{
if(SL.Insert(num,pos))
SL.PrintAllElem();
}
}
break;
case"5":
Console.Write("请输入删除位置:
");
if(int.TryParse(Console.ReadLine(),outpos))
Console.WriteLine("被删除的数据元素:
{0}",SL.Delete(pos));
break;
case"6":
Console.Write("请输入一个整数:
");
if(int.TryParse(Console.ReadLine(),outpos))
Console.WriteLine("指定位置的数据元素:
{0}",SL.GetElem(pos));
break;
case"7":
Console.Write("请输入一个整数:
");
if(int.TryParse(Console.ReadLine(),outnum))
Console.WriteLine("匹配的数据元素所在的索引:
{0}",SL.Locate(num));
break;
case"8":
SL.PrintAllElem();
break;
case"9":
num=FindMax(SL);
if(num>-1)
Console.WriteLine("顺序表中最大的数据元素为:
{0}",num);
break;
case"10":
if(BubbleSort(SL))
Console.WriteLine("顺序表升序排序完成!
");
break;
case"11":
if(Inversion(SL))
Console.WriteLine("顺序表倒置完成!
");
break;
case"12":
if(DeleteRepeatElem(SL))
Console.WriteLine("删除顺序表中的重复元素完成!
");
break;
default:
Console.WriteLine("请输入一个合理的操作编号!
");
break;
}
}
}
///查找顺序表中最大的数据元素
privatestaticintFindMax(SeqList
{
//定义存储最大值的变量
intmax=-1;
//判断顺序表是否为空
if(SL.IsEmpty())
{
Console.WriteLine("顺序表中不存在数据元素,无法执行查找操作!
");
}
else
{
//设置最大值为顺序表中第一个数据元素,则可直接从第二个数据元素开始对比
max=SL[0];
intlen=SL.GetLength();
for(inti=1;i { if(max max=SL[i]; } } //返回找到的最大值(或默认值) returnmax; } ///对顺序表进行冒泡排序(升序) privatestaticboolBubbleSort(SeqList { //判断顺序表是否为空 if(SL.IsEmpty()) { Console.Wr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 C# 顺序 资料