没有合适的资源?快使用搜索试试~ 我知道了~
数据结构实验报告全集.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
14 浏览量
2022-07-12
16:42:52
上传
评论 1
收藏 838KB PDF 举报
数据结构实验报告全集.pdf数据结构实验报告全集.pdf数据结构实验报告全集.pdf数据结构实验报告全集.pdf数据结构实验报告全集.pdf数据结构实验报告全集.pdf数据结构实验报告全集.pdf数据结构实验报告全集.pdf
资源推荐
资源详情
资源评论




















数据结构实验报告全集
实验一 线性表基本操作和简单程序
1. 实验目的
(1)掌握使用 Visual C++ 6.0 上机调试程序的基本方法;
(2)掌握线性表的基本操作:初始化、插入、删除、取数据元素等运算在顺序存储结构和
链表存储结构上的程序设计方法。
2. 实验要求
(1) 认真阅读和掌握和本实验相关的教材内容。
(2) 认真阅读和掌握本章相关内容的程序。
(3) 上机运行程序。
(4) 保存和打印出程序的运行结果,并结合程序进行分析。
(5) 按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果
实验代码:
1)头文件模块
#include iostream.h>//头文件
#include<malloc.h>//库头文件-----动态分配内存空间
typedef int elemtype;//定义数据域的类型
typedef struct linknode//定义结点类型
{
elemtype data;//定义数据域
struct linknode *next;//定义结点指针
}nodetype;
2)创建单链表

nodetype *create()//建立单链表,由用户输入各结点 data 域之值,
//以 0 表示输入结束
{
elemtype d;//定义数据元素 d
nodetype *h=NULL,*s,*t;//定义结点指针
int i=1;
cout<<"建立一个单链表"<<endl;
while(1)
{
cout <<" 输入第"<< i <<"结点 data 域值:";
cin >> d;
if(d==0) break;//以 0 表示输入结束
if(i==1)//建立第一个结点
{
h=(nodetype*)malloc(sizeof(nodetype));//表示指针 h
h->data=d;h->next=NULL;t=h;//h 是头指针
}
else//建立其余结点
{
s=(nodetype*) malloc(sizeof(nodetype));
s->data=d;s->next=NULL;t->next=s;
t=s;//t 始终指向生成的单链表的最后一个节点

}
i++;
}
return h;
}
3)输出单链表中的元素
void disp(nodetype*h)//输出由 h 指向的单链表的所有 data 域之值
{
nodetype *p=h;
cout<<"输出一个单链表:"<<endl<<" ";
if(p==NULL)cout<<"空表";
while(p!=NULL)
{
cout<<p->data<<" ";p=p->next;
}
cout<<endl;
}
4)计算单链表的长度
int len(nodetype *h)//返回单链表的长度
{
int i=0;
nodetype *p=h;

while(p!=NULL)
{
p=p->next;i++;
}
return i;
}
5)寻找第 i 个节点
nodetype *find(nodetype *h,int i)//返回第 i 个节点的指针
{
nodetype *p=h;
int j=1;
if(i>len(h)||i<=0)
return NULL;//i 上溢或下溢 c
else
{
while (p!=NULL&&j<1)//查找第 i 个节点,并由 p 指向该节点
{
j++;p=p->next;
}
return p;
}
}

6)单链表的插入操作
nodetype *ins(nodetype *h,int i,elemtype x)//在单链表 head 中第 i 个节点
//(i>=0)之后插入一个 data 域为 x 的节点
{
nodetype *p,*s;
s=(nodetype*)malloc(sizeof(nodetype));//创建节点 s
s->data=x;s->next=NULL;
if(i==0)//i=0:s 作为该单链表的第一个节点
{
s->next=h;h=s;
}
else
{p=find(h,i);//查找第 i 个节点,并由 p 指向该节点
if(p!=NULL)
{
s->next=p->next;
p->next=s;
}
return h;
}
}
7)单链表的删除操作
剩余32页未读,继续阅读
资源评论

apple_51426592
- 粉丝: 4859
- 资源: 5757

上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制
