


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一篇:串-数据结构实验报告【源程序】:#include#include#includevoidchoose(char*s,inti,intm,char*t);//i位置截取m个字符函数voidmain()主函数{char*s,*t;inti,sl,m;s=(char*)malloc(100*sizeof(char));t=(char*)malloc(100*sizeof(char));printf("\ns=?");gets(s);printf("\ns=%s\n",s);printf("\ni=?");scanf("%d",&i);printf("\ni=%d\n",i);printf("\nm=?");scanf("%d",&m);printf("\nm=%d\n",m);sl=strlen(s);if(i>sl)printf("i位置出错\n");elseif(i+m>sl+1)printf("m位置出错\n");else{choose(s,i,m,t);printf("\n子串为t=%s\n",t);}}//end_mainvoidchoose(char*s,inti,intm,char*t){intn;intj=0;for(n=i;n三.实验结论及分析串的存储结构包含有顺序存储结构和链式存储结构。在串的顺序存储结构中,表示串的长度通常有两种方法:一种方法是设置一个串的长度参数,其优点在于便于在算法中用长度参数控制循环过程;另一种方法是在串值得末尾添加结束标记,此种方法的优点在于便于系统自动实现。在串的存储过程中,串值用验在实习一中,gets(),scantf()两个函数的不同在于,gets()通过键盘接受字符时,直到遇到换行符结束,而scanf()结束标志可以是‘空格键‘abc。四、实验总结本次试验之后,学会了串函数的相关调用以及串的相应操作。第二篇:数据结构实验报告注意:实验结束后提交一份实验报告电子文档8宋思怡《数据结构》实验报告(一)学号:姓名:专业年级:实验名称:线性表414实验目的:1、熟悉线性表的定义及其顺序和链式存储结构;2、熟练掌握线性表在顺序存储结构上实现基本操作的方法;3、熟练掌握在各种链表结构中实现线性表基本操作的方法;4、掌握用C/C++语言调试程序的基本方法。实验内容:一、编写程序实现顺序表的各种基本运算,并在此基础上设计一个主程序完成如下功能:(1)初始化顺序表L;(2)依次在L尾部插入元素-1,21,13,24,8;输出顺序表L;输出顺序表L长度;判断顺序表L是否为空;输出顺序表L3个元素;24的位置;在L40;输出顺序表L;L5个元素;源代码调试分析(给出运行结果界面)二、编写程序实现单链表的各种基本运算,并在此基础上设计一个主程序完成如下功能:„„„„„„„„小结或讨论:实验中遇到的问题和解决方法实验中没有解决的问题体会和提高第三篇:数据结构实验报告南京信息工程大学实验(实习)报告实验(实习)名称数据结构实验(实习)日期2011-11-2得分指导教师周素萍系公共管理系专业信息管理与信息系统年级10120102307003实验一顺序表的基本操作及C语言实现【实验目的】1、顺序表的基本操作及C语言实现【实验要求】1、用C语言建立自己的线性表结构的程序库,实现顺序表的基本操作。2、对线性表表示的集合,集合数据由用户从键盘输入(数据类型为整型得数据按从小到大的顺序存放,将两个集合的并的结果存储在一个新的线性表集合中,并输出。【实验内容】1、根据教材定义的顺序表机构,用C查找等操作;2、利用上述顺序表操作实现如下程序:建立两个顺序表表示的集合(复的元素,并求这样的两个集合的并。【实验结果】[实验数据、结果、遇到的问题及解决]一.StatusInsertOrderList(SqList&va,ElemTypex){}二.StatusDeleteK(SqList&a,inti,intk){1//在非递减的顺序表va中插入元素x并使其仍成为顺序表的算法inti;if(va.length==va.listsize)return(OVERFLOW);for(i=va.length;i>0,x}//注意i的编号从0开始intj;if(ia.length-1||ka.length-i)returnINFEASIBLE;for(j=0;j三.//将合并逆置后的结果放在C表中,并删除B表StatusListMergeOppose_L(LinkList&A,LinkList&B,LinkList&C){LinkListpa,pb,qa,qb;pa=A;pb=B;qa=pa;qb=pb;//pa的前驱指针//pb的前驱指针pa=pa->next;pb=pb->next;A->next=NULL;C=A;while(pa&&pb){}while(pa){}qa=pa;pa=pa->next;qa->next=A->next;A->next=qa;if(pa->datadata){}else{}qb=pb;pb=pb->next;qb->next=A->next;将当前最小结点插入A表表头A->next=qb;qa=pa;pa=pa->next;qa->next=A->next;A表表头A->next=qa;}}pb=B;free(pb);returnOK;qb=pb;pb=pb->next;qb->next=A->next;A->next=qb;顺序表就是把线性表的元素存储在数组中,元素之间的关系直接通过相邻元素的位置来表达。优点:简单,数据元素的提取速度快;)静态存储,无法预知问题规模的大小,可能空间不足,或浪费存储空间2)求两个集合的并集s1s2的并集,并将结果存入ss1复制到ss2中的每个元素依次插入到集合s中,当然重复的元素不应该被插入,最后在s中就s1s2的并集,也就是在s所对应的实际参数集合中得到并集。第四篇:数据结构实验报告数据结构实验报告第一次实验学号:20141060106姓名:叶佳伟一、实验目的1、复习变量、数据类型、语句、函数;2、掌握函数的参数和值;3、了解递归。二、实验内容1(必做题)均分。2必做题采用递归和非递归方法计算k阶裴波那契序列的第n,f1=0,…,fk-2=0,fk-1=1,fn=fn-1+fn-2+…+fn-k(n>=k)k(13(选做题)采用递归和非递归方法求解汉诺塔问题,问题描述如下:有三根柱子ABC,在柱子A上从下向上有n个从大到小的圆盘,在柱子B和C上没有圆盘,现需将柱子A上的所有圆盘移到柱子C能大的在下,小的在上。要求:输入n,输出移动步骤。三、算法描述(采用自然语言描述)2.四、详细设计(画出程序流程图)1.五、程序代码(给出必要注释)1.#includefloatave(intscore[],intk){inti;floats=0.0,ave;for(i=0;i}intmax(intscore[],intk){inti,max;max=score[0];for(i=0;imax)max=score[i];returnmax;}intmin(intscore[],intk){inti,min;min=score[0];for(i=0;i#includeintf(intn){intk;if(nelsereturn(2*f(n-1)-f(n-k-1));}voidmain(){intk,n,fn=0;kn:[k(11){fn=(n);printf("f%d=%d\n",n,fn);break;}}2.2#include六、测试和结果(给出测试用例以及测试结果)1.2.七、用户手册(告诉用户如何使用程序)1.使用MicrcosoftVisualC++。2.使用MicrcosoftVisualC++。3第五篇:数据结构实验报告数据结构实验报告一.题目要求1)编程实现二叉排序树,包括生成、插入,删除;2)对二叉排序树进行先根、中根、和后根非递归遍历;3)每次对树的修改操作和遍历操作的显示结果都需要在屏幕上用树的形状表示出来。4)分别用二叉排序树和数组去存储一个班(50人以上)的成员信息(至少包括学号、姓名、成绩3项),对比查找效率,并说明在什么情况下二叉排序树效率高,为什么?二.解决方案对于前三个题目要求,我们用一个程序实现代码如下#include#include#include#include"Stack.h"//栈的头文件,没有用上typedefintElemType;//数据类型typedefintStatus;//返回值类型//定义二叉树结构typedefstructBiTNode{ElemTypedata;structBiTNode*lChild,左右子树域}BiTNode,*BiTree;intInsertBST(BiTree&T,intkey){//树函数if(T==NULL){T=(BiTree)malloc(sizeof(BiTNode));T->data=key;T->lChild=T->rChild=NULL;return1;}elseif(keydata){InsertBST(T->lChild,key);}elseif(key>T->data){InsertBST(T->rChild,key);}elsereturn0;}BiTreeCreateBST(inta[],intn){//创建二叉树函数BiTreebst=NULL;inti=0;while(i//数据域InsertBST(bst,a[i]);
入二叉i++;}returnbst;}intDelete(BiTree&T){BiTreeq,s;}if(!(T)->rChild){//右子树为空重接它的左子树q=T;T=(T)->lChild;free(q);}else{if(!(T)->lChild){//若左子树空则重新接它的右子树q=T;T=(T)->rChild;}else{q=T;s=(T)->lChild;while(s->rChild){q=s;s=s->rChild;}(T)->data=s->data;//s指向被删除结点的前驱if(q!=T)q->rChild=s->lChild;elseq->lChild=s->lChild;free(s);}}return1;//删除函数,在T中删除key元素intDeleteBST(BiTree&T,intkey){if(!T)return0;else{if(key==(T)->data)returnDelete(T);else{if(keydata)returnDeleteBST(T->lChild,key);elsereturnDeleteBST(T->rChild,key);}}}intPosttreeDepth(BiTreeT){//求深度inthr,hl,max;if(!T==NULL){hl=PosttreeDepth(T->lChild);hr=PosttreeDepth(T->rChild);max=hl>hr?hl:hr;returnmax+1;}elsereturn0;}voidprinttree(BiTreeT,intnlayer){//打印二叉树if(T==NULL)return;printtree(T->rChild,nlayer+1);for(inti=0;i");}printf("%d\n",T->data);printtree(T->lChild,nlayer+1);}voidPreOrderNoRec(BiTree/历{BiTreep=root;BiTreestack[50];intnum=0;while(NULL!=p||num>0){while(NULL!=p){printf("%d",p->data);stack[num++]=p;p=p->lChild;}num--;p=stack[num];p=p->rChild;}printf("\n");}voidInOrderNoRec(BiTreeroot)//中序非递归遍历{BiTreep=root;}intnum=0;BiTreestack[50];while(NULL!=p||num>0){while(NULL!=p){stack[num++]=p;p=p->lChild;}num--;p=stack[num];printf("%d",p->data);p=p->rChild;}printf("\n");voidPostOrderNoRec(BiTreeroot)//后序非递归遍历{BiTreep=root;BiTreestack[50];intnum=0;BiTreehave_visited=NULL;while(NULL!=p||num>0){while(NULL!=p){stack[num++]=p;p=p->lChild;}
序非递归遍p=stack[num-1];if(NULL==p->rChild||have_visited==p->rChild){printf("%d",p->data);num--;have_visited=p;p=NULL;}else{p=p->rChild;}}printf("\n");}intmain(){//主函数printf("---------------------二叉排序树的实现 ");printf("\n");intlayer;inti;intnum;输入节点个数:");scanf("%d",&num);依次输入这些整数(要不相等");int*arr=(int*)malloc(num*sizeof(int));for(i=0;iscanf("%d",arr+i);}BiTreebst=CreateBST(arr,num);printf("\n");printf("二叉树创建成功!");printf("\n");layer=PosttreeDepth(bst);printf("树状图为:\n");printtree(bst,layer);intj;intT;intK;for(;;){loop:printf("\n");printf("***********************************************:");printf("\n");printf("1:插入节点删除节点3:打印二叉树4:非递归遍历二叉树5:退出");scanf("%d",&j);switch(j){case1:printf("输入要插入的节点:");scanf("%d",&T);InsertBST(bst,T);printf("插入成功!");printf("树状图为:\n");printtree(bst,layer);break;case2:}printf("输入要删除的节点");scanf("%d",&K);DeleteBST(bst,K);printf("删除成功!");printf("树状图为:\n");printtree(bst,layer);break;case3:layer=PosttreeDepth(bst);printtree(bst,layer);break;case4:printf("非递归遍历二叉树");printf("先序遍历:\n");PreOrderNoRec(bst);printf("中序遍历:\n");InOrderNoRec(bst);printf("后序遍历:\n");PostOrderNoRec(bst);printf("树状图为:\n");printtree(bst,layer);break;case5:printf("程序执行完毕!");return0;}gotoloop;}return0;对于第四小问,要储存学生的三个信息,需要把上面程序修改一下,二叉树结构变为typedefintElemType;//数据类型typedefstringSlemType;typedefintStatus;//返回值类型//定义二叉树结构typedefstructBiTNode{SlemTypename;ElemTypescore;ElemTypeno;//数据域structBiTNode*lChild,*rChild;//左右子树域}BiTNode,*BiTree;参数不是key,而是另外三个intInsertBST(BiTree&T,intno,intscore,stringname){//插入二叉树函数if(T==NULL){T=(BiTree)malloc(sizeof(BiTNode));T->no=no;T->name=name;T->score=score;T->lChild=T->rChild=NULL;return1;}elseif(nono){InsertBST(T->lChild,no,score,name);}elseif(key>T->data){InsertBST(T->rChild,no,score,name);}elsereturn0;}其他含参函数也类似即可完成50个信息存储用数组存储50个信息,查看以往代码#include#includeusingn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 创业融资租赁合同范本
- 公路护栏修建合同范本
- 个人用电协议合同范例
- 公司运输购销合同范本
- 刻字木材出售合同范本
- 个人旅游陪玩合同范本
- 个人住家保姆合同范本
- 劳务代理加盟合同范例
- fidic银皮书合同范例
- 出售电厂烧火料合同范本
- 生物基有机硅材料的研究进展及前景展望
- 国有企业保密管理制度
- 一年级上册数学试题-期中试卷五 苏教版(含答案)
- Unit2大单元整体教学设计-小学英语四年级上册(Joinin外研剑桥英语)
- 乡村振兴背景下农业硕士产教融合培养模式的创新
- 人美版(2024)七年级上册美术第二单元 色彩魅力第1课《自然的色彩》教学设计
- 2024年高级纤维检验员职业鉴定理论考试题库(含答案)
- 心肺复苏科普课件
- 员工食堂就餐统计表
- 2024至2030年中国医疗保险行业市场深度分析及投资战略规划报告
- 【班主任培训】初一新生行为习惯规范
评论
0/150
提交评论