数据结构实验答案.docx
上传人:王子****青蛙 上传时间:2024-09-13 格式:DOCX 页数:20 大小:1.2MB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

数据结构实验答案.docx

数据结构实验答案.docx

预览

免费试读已结束,剩余 10 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验报告册专业:_____软件工程___班级:_____软件工程2班___学号:_____201258014054___姓名:_____周贵宇___________课程名称:___数据结构_指导教师:_____胡章平__________2013年06月25日实验序号1实验名称实验一线性表基本操作实验地点S-C1303实验日期2013年04月22日实验内容编程实现在顺序存储的有序表中插入一个元素(数据类型为整型)。编程实现把顺序表中从i个元素开始的k个元素删除(数据类型为整型)。编程序实现将单链表的数据逆置,即将原表的数据(a1,a2….an)变成(an,…..a2,a1)。(单链表的数据域数据类型为一结构体,包括学生的部分信息:学号,姓名,年龄)实验过程及步骤1.#include<stdio.h>#include<stdlib.h>#include<malloc.h>#defineOK1#defineERROR0#defineTRUE1#defineFALSE0#defineElemTypeint#defineMAXSIZE100/*此处的宏定义常量表示线性表可能达到的最大长度*/typedefstruct{ElemTypeelem[MAXSIZE];/*线性表占用的数组空间*/intlast;/*记录线性表中最后一个元素在数组elem[]中的位置(下标值),空表置为-1*/}SeqList;#include"common.h"#include"seqlist.h"voidpx(SeqList*A,intj);voidmain(){SeqList*l;intp,q,r;inti;l=(SeqList*)malloc(sizeof(SeqList));printf("请输入线性表的长度:");scanf("%d",&r);l->last=r-1;printf("请输入线性表的各元素值:\n");for(i=0;i<=l->last;i++){scanf("%d",&l->elem[i]);}px(l,i);printf("请输入要插入的值:\n");scanf("%d",&l->elem[i]);i++;px(l,i);l->last++;for(i=0;i<=l->last;i++){printf("%d",l->elem[i]);}printf("\n");}voidpx(SeqList*A,intj){inti,temp,k;for(i=0;i<j;i++){for(k=0;k<j-1;k++){if(A->elem[i]<A->elem[k]){temp=A->elem[i];A->elem[i]=A->elem[k];A->elem[k]=temp;}}}}2.#include<stdio.h>#include<stdlib.h>#include<malloc.h>#defineOK1#defineERROR0#defineTRUE1#defineFALSE0#defineElemTypeint#defineMAXSIZE100/*此处的宏定义常量表示线性表可能达到的最大长度*/typedefstruct{ElemTypeelem[MAXSIZE];/*线性表占用的数组空间*/intlast;/*记录线性表中最后一个元素在数组elem[]中的位置(下标值),空表置为-1*/}SeqList;#include"common.h"#include"seqlist.h"voidpx(SeqList*A,intj);intDelList(SeqList*L,inti,SeqList*e,intj)/*在顺序表L中删除第i个数据元素,并用指针参数e返回其值。i的合法取值为1≤i≤L.last+1*/{intk,a,b,c;if((i<1)||(i>L->last+2)){printf("删除位置不合法!");return(ERROR);}if(j>L->last-i){printf("删除位置不合法!");return(ERROR);}for(b=0,a=i-1;a<i+j-1;b++,a++){e->elem[b]=L->elem[a];}e->last=b;/*将删除的元素存放到e所指向的变量中*/for(k=i;k+j-1<=L->last;k++){L->elem[k-1]=L->e