山东大学数据结构第一次实验实验报告.docx

山东大学数据结构第一次实验实验报告.docx

ID:59233833

大小:114.96 KB

页数:8页

时间:2020-10-30

山东大学数据结构第一次实验实验报告.docx_第1页
山东大学数据结构第一次实验实验报告.docx_第2页
山东大学数据结构第一次实验实验报告.docx_第3页
山东大学数据结构第一次实验实验报告.docx_第4页
山东大学数据结构第一次实验实验报告.docx_第5页
资源描述:

《山东大学数据结构第一次实验实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验1ADT表的编程与实现C语言,是一种通用的、过程式的编程语言,广泛用于系统与应用软件的开发。具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序员中备受青睐。MicrosoftVisualC++是Microsoft公司推出的开发Win32环境程序具有集成开发环境,可提供编辑C语言,C++以及C++/CLI语言等可视化集成编程系统。它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2,WinSock网

2、络、3D控制界面。本课程实验要求学生运用C语言编程完成数据结构课程中抽象数据类型及排序算法的编程实现,加深对教学内容的理解。实验目的:加深对抽象数据类型ADT表的理解;实验原理:参照课本p.44-49,及Figure3.6-3.13.实验内容:编写程序实现ADT表的定义,及常用操作:1)判断表是否为空;2)获取第i个节点的内容3)删除4)插入实验要求:1)复习C语言相关知识;2)实现完整的ADT表结构及操作,并给出应用。实验源程序:#include"stdafx.h"#include"stdio.h"#include"std

3、lib.h"#include"malloc.h"typedefstructnode{intdata;structnode*pNext;//pNext为指向下一个节点的指针}Node,*pNode;pNodeCreateLinkList();//创建链表函数boolIsEmpty(pNode);//定义IsEmpty(pNode)为布尔值,判断链表是否为空intFindTheNode(pNodepHead,inta,intlength);//找出某一个节点的值voidTraverseLinkList(pNodepHead);/

4、/遍历链表,获取链表中的数值intGetLengthLinklist(pNodepHead);//获取链表长度intDelete(pNodepHead,intx);//删除元素intInsert(pNodepHead,intb,intc);//插入元素voidFreeLinkList(pNodepHead);//释放链表空间////////////////////////////////////////////////////////////////////////////////intmain()//主函数{inta,b,

5、c,x,length;pNodepHead=NULL;//初始化头节点pHead为NULLpHead=CreateLinkList();//创建一个非循环单链表,并将该链表的头结点的地址赋给pHeadif(IsEmpty(pHead))//判断链表是否为空{printf("链表为空!");return0;}elseTraverseLinkList(pHead);//遍历链表printf("链表为非空!");length=GetLengthLinklist(pHead);//获取链表长度while(1){printf(

6、"获取第i个节点的内容,i=");scanf("%d",&a);if(FindTheNode(pHead,a,length))break;//找出第i个节点的值}while(1){printf("请输入要删除的元素:");scanf("%d",&x);if(Delete(pHead,x))//在链表中将元素x删除{printf("删除元素%d后",x);break;}printf("未找到该元素,删除失败");}TraverseLinkList(pHead);while(1){printf("请输入插入节点的位置:");

7、scanf("%d",&b);printf("请输入插入节点的数值:");scanf("%d",&c);if(Insert(pHead,b,c))//在链表中插入元素{printf("在位置%d插入元素%d后",b,c);break;}printf("未找到该位置,插入失败");}TraverseLinkList(pHead);FreeLinkList(pHead);//释放链表空间return0;}/////////////////////////////////////////////////////////////

8、///////////pNodeCreateLinkList()//创建链表函数{intLEN,a;pNodepHead=(pNode)malloc(sizeof(Node));//动态分配内存pNodepTail=pHead;pTail->pNext=NULL;//令链尾指向NULLpr

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。