数据结构实验报告Word文件下载.docx

上传人:b****6 文档编号:17602096 上传时间:2022-12-07 格式:DOCX 页数:5 大小:17.18KB
下载 相关 举报
数据结构实验报告Word文件下载.docx_第1页
第1页 / 共5页
数据结构实验报告Word文件下载.docx_第2页
第2页 / 共5页
数据结构实验报告Word文件下载.docx_第3页
第3页 / 共5页
数据结构实验报告Word文件下载.docx_第4页
第4页 / 共5页
数据结构实验报告Word文件下载.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据结构实验报告Word文件下载.docx

《数据结构实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据结构实验报告Word文件下载.docx(5页珍藏版)》请在冰豆网上搜索。

数据结构实验报告Word文件下载.docx

  structsnoDe*left;

//指向配偶结点

  structsnoDe*right;

//指向兄弟或子女结点

  }FnoDe;

  

(二)总体设计

  实验由主函数、家谱建立函数、家谱输出函数、儿子查找函数、祖先查找函数、结点定位函数、选择界面函数七个函数共同组成。

其功能描述如下:

  

(1)主函数:

统筹调用各个函数以实现相应功能

  voidmain()

  

(2)家谱建立函数:

与用户交互建立家族成员对应关系

  voidInitialFamily(FnoDe*//人名

  /*家谱建立函数*/

  voidInitialFamily(FnoDe*

  inttag;

  q=(FnoDe*)malloc(sizeof(FnoDe));

  q=nuLL;

  s=(FnoDe*)malloc(sizeof(FnoDe));

  printf("

输入姓名:

\n"

);

  scanf("

%s"

,,s->

name);

  s->

left=s->

right=nuLL;

  head=r=s;

%s是否有配偶?

有1,无0\n"

head->

//建立配偶结点scanf("

%d"

  if(tag)

  {

输入其配偶姓名:

s->

  r->

left=s;

  r=s;

  do{//递归调用建立孩子结点printf("

%s是否还有子女?

  InitialFamily(q);

right=q;

  r=q;

  }

  }while(tag);

  /*家谱输出部分*/

  voidprintFamily(FnoDe*head)

  FnoDe*s;

  if(head!

=nuLL)

//不为空时输出当前结点

  if(head->

left!

=nuLL)//输出配偶结点

  s=head->

left;

和%s("

  printFamily(s->

right);

//递归调用输出孩子结点

)"

right!

=nuLL)//递归调用输出兄弟结点

"

  printFamily(head->

  /*结点定位函数*/

  FnoDe*findnode(FnoDe*b,charp[])//在家谱中定位所要查找结点{

  FnoDe*q;

  if(b==nuLL)

  returnnuLL;

  elseif(!

strcmp(b->

name,p))//如果与查找人名相同则返回该结点returnb;

  else

  q=findnode(b->

left,p);

//否则递归调用其左结点

  if(q!

  returnq;

  elsereturn(findnode(b->

right,p));

//递归调用右结点

  篇二:

  肇庆学院计算机学院/软件学院

  实验报告

  专业_软件工程_班级14软件2班姓名_黎福喜_学号20XX24133225课程名称数据结构学年20XX—20XX学期1?

/2□课程类别专业必修?

限选□任选□实践□评分:

批阅老师:

20XX年月日实验1线性表的基本操作

  ?

实验目的

  1、掌握线性表的基本一算。

  2、掌握顺序存储的概念,学会对顺序存储数据结构进行操作。

  3、加深对顺序存储数据结构的理解,逐步培养解决实际问题的编程能力。

实验内容

  1、编写线性表举报操作函数

  

(1)InitList(LIsT*L,intms)初始化线性表;

  

(2)InsertList(LIsT*L,intitem,intrc)向线性表指定位置插入元素;

  (3)DeleteList1(LIsT*L,intitem)删除指定元素的线性表记录;

  (4)DeleteList2(LIsT*L,intrc)删除删除指定位置的线性表记录;

  (5)FindList(LIsT*L,intitem)查找线性表中的元素;

  (6)outputList(LIsT*L)输出线性表元素。

  2、调用上述函数实现下列操作:

  

(1)初始化线性表;

  

(2)调用插入函数建立一个线性表;

  (3)在线性表中寻找指定的元素;

  (4)在线性表中删除指定值的元素;

  (5)在线性表中删除指定位置的元素;

  (6)遍历并输出线性表。

实验结果

  1、流程图

  2、程序运行主要结果截图

  2、程序源代码

  #include#include#includestructLinearList{int*list;

intsize;

intmaxsize;

};

typedefstructLinearListLIsT;

voidInitList(LIsT*L,intms)//线性表初始化{if((L->

list=(int*)malloc(ms*sizeof(int)))==nuLL){printf("

内存申请错误!

exit

(1);

}L->

size=0;

L->

maxsize=ms;

}intInsertList(LIsT*L,intitem,intrc)//插入//item-记录值;

rc-插入位置{inti;

if(L->

size==L->

maxsize)

  return-1;

if(rcL->

size)rc=L->

size;

for(i=L->

size-1;

i>

=rc;

i--)L->

list[i+1]=L->

list[i];

list[rc]=item;

size++;

return0;

}voidoutputList(LIsT*L)//输出{inti;

for(i=0;

isize;

i++)printf("

L->

list[i]);

printf("

}intDeleteList1(LIsT*L,intitem)//删除元素值的线性表记录{inti,n;

i++)if(item==L->

list[i])break;

if(isize){for(n=i;

nsize-1;

n++)L->

list[n]=L->

list[n+1];

size--;

returni;

}return-1;

}intDeleteList2(LIsT*L,intrc)//删除指定位置的线性表记录{intn;

if(rc=L->

size)return-1;

for(n=rc;

}intFindList(LIsT*L,intitem)//查找{inti;

list[i])returni;

return-1;

}intmain(){LIsTLL;

inti,r,choice;

listaddr=%p\tsize=%d\tmaxsize=%d\n"

LL.list,LL.size,LL.maxsize);

InitList(printf("

do{printf("

--------------------------\n"

------1.添加元素----------\n"

------2.按元素值查找元素--\n"

------3.按元素值删除元素--\n"

------4.按位置删除元素----\n"

------0.退出--------------\n"

请输入数字(0~4)选择你要进行的操作:

"

fflush(stdin);

scanf("

switch(choice){case1:

while

(1)//添加元素

  {printf("

请输入元素值,输入0结束插入操作:

//清空标准输入缓冲区scanf("

if(i==0)break;

请输入插入位置:

InsertList(printf("

线性表为:

outputList(}break;

case2:

while

(1)//按元素值查找元素{printf("

请输入查找元素值,输入0结束查找操作:

r=FindList(if(r  实验2链表的基本操作

  1、掌握链表的概念,学会对链表进行操作。

  2、加深对链式存储数据结构的理解,逐步培养解决实际问题的编程能力。

?

  1、编写链表几把操作函数:

  

(1)InitList(LIsT**p)初始化链表;

  

(2)InsertList1(LIsT**p,intitem,intrc)向链表的指定位置插入元素;

  (3)InsertList2(LIsT**p,intitem)向有序链表插入元素;

  (4)DeleteList(LIsT**p,intitem)删除指定元素值的链表记录;

  (5)FindList(LIsT*p,intitem)查找链表中的元素;

  (6)outputList(LIsT*p)输出链表元素。

  

(1)初始化链表;

  

(2)调用插入函数建立一个链表;

  (3)在链表中寻找指定的元素;

  (4)在链表中删除指定值的元素;

  (5)遍历并输出链表。

  篇三:

  本科生实验报告

  (五)

  姓名:

  学院:

  专业:

  班级:

  实验课程名称:

数据结构实验

  实验日期:

20XX年6月19日

  指导教师及职称:

  实验成绩:

  开课时间:

20XX~20XX学年第二学期

  实验管理中心印制

  

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1