资源描述:
《山东大学数据结构第一次实验实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、WORD格式-可编辑实验1ADT表的编程与实现C语言,是一种通用的、过程式的编程语言,广泛用于系统与应用软件的开发。具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序员中备受青睐。MicrosoftVisualC++是Microsoft公司推出的开发Win32环境程序具有集成开发环境,可提供编辑C语言,C++以及C++/CLI语言等可视化集成编程系统。它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2,WinSock网络、3
2、D控制界面。本课程实验要求学生运用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"stdlib.h"#include"m
3、alloc.h"typedefstructnode{intdata;structnode*pNext;//pNext为指向下一个节点的指针}Node,*pNode;pNodeCreateLinkList();//创建链表函数boolIsEmpty(pNode);//定义IsEmpty(pNode)为布尔值,判断链表是否为空intFindTheNode(pNodepHead,inta,intlength);//找出某一个节点的值voidTraverseLinkList(pNodepHead);//遍历链表,获取链表中的数值intGetLengthLin
4、klist(pNodepHead);//获取链表长度intDelete(pNodepHead,intx);//删除元素intInsert(pNodepHead,intb,intc);//插入元素voidFreeLinkList(pNodepHead);//释放链表空间////////////////////////////////////////////////////////////////////////////////intmain()//主函数{inta,b,c,x,length;pNodepHead=NULL;//初始化头节点pHead为N
5、ULLpHead=CreateLinkList();//创建一个非循环单链表,并将该链表的头结点的地址赋给pHead专业知识--整理分享WORD格式-可编辑if(IsEmpty(pHead))//判断链表是否为空{printf("链表为空!");return0;}elseTraverseLinkList(pHead);//遍历链表printf("链表为非空!");length=GetLengthLinklist(pHead);//获取链表长度while(1){printf("获取第i个节点的内容,i=");scanf("%d",&a);if(
6、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("请输入插入节点的位置:");scanf("%d",&b);printf("请输入插入节点的数值:");scanf("%d",
7、&c);if(Insert(pHead,b,c))//在链表中插入元素{printf("在位置%d插入元素%d后",b,c);break;}printf("未找到该位置,插入失败");}TraverseLinkList(pHead);FreeLinkList(pHead);//释放链表空间return0;}////////////////////////////////////////////////////////////////////////pNodeCreateLinkList()//创建链表函数{intLEN,a;pNodepHead=
8、(pNode)malloc(sizeof(Node));//动态分配内存pNodepTail=pHead;p