- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络协议仿真教学系统实验教材(基本版)
PAGE 6
实验二 线性表存储结构的实现
【实验目的】
1.通过实验理解线性表的存储结构。
2. 通过实验掌握顺序表和链表的操作。
【实验学时】
2学时
【实验类型】
验证型
【实验内容】
1.掌握线性表的数据结构的特点。
2.掌握顺序表的编码实现及顺序表上的各种操作。
3.掌握链表的编码实现及其各种操作。
【实验原理】
1.线性表数据结构实现
现有一线性表(12,3,5,34,65,10,7,34,79),采用顺序存储结构,上机完成以下任务:
(1)利用数组建立该线性表的顺序存储结构。
(2)在34和65之间插入数据50。
(3)删除元素65。
(4)查找值为100的元素,若该元素不存在,将其插入到表的最后。
2.链表数据结构实现
将线性表采用链式存储结构,完成上述的各项任务。
(1) 在对话框头文件或者CPP文件头部,增加如下内容:
#define NULL 0
typedef int node_type;
typedef struct linkednode{
node_type data;
struct linkednode *next;
} snode, *ptr;
#define newptr() (ptr)malloc(sizeof(snode))
则申请新节点可以使用:
p=newptr();
在C++中,也可以使用
p= new snode;
删除节点则使用:
delete p;
(2) 在链表表头插入节点:
设指针p指向一个新节点,要插入链表中。
p-next = head;
head = p;
(在链表中间插入节点:
设要把指针p对应节点插入到q节点后面,
p-next = q-next;
q-next = p;
(4) 删除表头节点
p = head;
head = head-next;
free(p);
(在链表中间删除节点:
设要删除q节点后面的一个节点,
p = q-next;
q-next = p-next;
free(p);
3.构造链表数据结构的步骤
(1) 构造一个空链表
(2)反复执行下列步骤
读入一个元素值
申请一个存储节点
构造一个节点(即给这个节点的值域赋值为读入的元素值)
将该节点插入链表中
直到读入的元素是结束标记。
其中第4步插入节点可以有三种不同的插入方法:向前插入、向后插入、有序插入。
【实验步骤】
练习一:线性表实现
1 建立一个新的工程,在界面上添加按钮如下:
显示数据DISP
初始化数据INIT
插入数据INSERT
删除数据DELETE
尾部添加数据ADDTAIL
清除数据CLEAR
这6个按钮,分别对应了实验内容中的各项功能。为它们修改ID,标题,并添加事件处理函数。
2 在类视图,为对话框类增加成员变量数组:int data[30]; 增加成员变量int datalen (立:在classview中选中类--Dlg右击第四项添加成员变量)
3 在类的初始化函数OnInitDialog()中,把datalen赋值为0;
4 在初始化数据按钮函数中,初始化数组data[]和数据长度datalen;
data[0]=12;
data[1]=3;
data[2]=5;
data[3]=34;
data[4]=65;
data[5]=10;
data[6]=7;
data[7]=34;
data[8]=79;
datalen = 9;
5 编制显示数据函数:
{
char str[300];
sprintf(str,数组共有%d个数据\r\n, datalen);
m1 += str;
for(int i=0; idatalen; i++)
{
sprintf(str,第%d个数据:%d\r\n, i+1, data[i]);
m1 += str;
}
UpdateData(false);
}
6 编制插入数据函数:
{
int pos;
pos = Find2Data(34,65);
if( pos=0 )
InsertData(pos, 50);
else
m1 += 没有找到数据(34,65)\r\n;
}
其中使用到两个函数:
int CDsexDlg::Find2Data(int d1, int d2)
{
int i;
int posf;
posf = -1;
for ( i=0; idatalen-1; i++)
{
if( data[i]== d1 (data[i+1]==d2) )
posf=i;
}
return posf;
}
void CDsexDlg::InsertDa
您可能关注的文档
- UEL——ABAQUS非线性用户单元的开发.ppt
- U9V2.8组件化实施方案实例指导OM-110工序委外.pptx
- T梁交流会汇报材料(苑庆良).ppt
- UG个人学习总结.doc
- U9V2.8组件化实施方案实例指导PM-020采购价格.pptx
- ug7.5实用教程4实体建模基础.ppt
- ug曲线的编辑操作.ppt
- UG加工培训教材.ppt
- UG液体电蚊香器上盖.ppt
- UG液体电蚊香器下盖.ppt
- 研报供需结构转弱甲醇面临调整29页.pdf
- 2020尼尔森媒体消费者报告居家办公对消费者体验的影响-尼尔森英文版37页.pdf
- 2020年开发人员远程工作报告开发人员居家办公的感受-OFFERZEN英文版30页.pdf
- GroundTruth2023年快消品行业洞察报告第2卷英文版8页.pdf
- 珠海市社会养老服务模式社区居家养老服务探索与研究分析报告147页.pdf
- 沃丰科技2023机器人行业智能售后服务转型白皮书38页.pdf
- 新锶体验2022Q1口腔护理行业品牌体验报告24页.pdf
- Placer.ai2022年餐饮行业发展报告-餐厅快餐及咖啡英文版18页.pdf
- 2023四年级英语寒假作业答案大全10篇.pdf
- 2023通用学校健康卫生工作计划.pdf
最近下载
- 原子结构(解析版)(2014-2023)高考物理真题汇编(全国通用).pdf VIP
- 福建省厦门外国语学校2024--2025学年七年级下学期期中生物试题(含答案).pdf VIP
- 《机床数控技术》试题及答案.pdf VIP
- 莲蓬 少儿美术课件.pptx VIP
- 企业财税合规课件.pptx VIP
- 智能小车设计ppt课件.pptx VIP
- 第8课《夜色》分层作业设计(含答案)统编版语文一年级下册.docx VIP
- 药物临床试验 研究团队授权与任务外包 广东共识(2020年).pdf VIP
- 方剂学功效主治组成方歌带趣味记忆大全表格打印版资料.doc VIP
- 知识产权管理体系管理手册+全套程序文件+目录清单(29490-2023).docx
文档评论(0)