数据结构实验答案1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
重庆文理学院软件工程学院实验报告册
专业:_____软件工程__ _
班级:_____软件工程2班__ _
学号:_____201258014054 ___
姓名:_____周贵宇___________
课程名称:___ 数据结构 _
指导教师:_____胡章平__________
2013年 06 月 25 日
{ ElemType elem[MAXSIZE]; /*线性表占用的数组空间*/ int last; /*记录线性表中最后一个元素在数组elem[ ]中的位置(下标值),空表置为-1*/
}SeqList;
#include "common.h"
#include "seqlist.h"
void px(SeqList *A,int j);
void main()
{ SeqList *l;
int p,q,r;
int i;
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");
}
void px(SeqList *A,int j)
{ int i,temp,k;
for(i=0;i { for(k=0;k {if(A->elem[i] {temp=A->elem[i]; A->elem[i]=A->elem[k]; A->elem[k]=temp; }} } } 2. #include #include #include #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 #define ElemType int #define MAXSIZE 100 /*此处的宏定义常量表示线性表可能达到的最大长度*/ typedef struct { ElemType elem[MAXSIZE]; /*线性表占用的数组空间*/ int last; /*记录线性表中最后一个元素在数组elem[ ]中的位置(下标值),空表置为-1*/ }SeqList; #include "common.h" #include "seqlist.h" void px(SeqList *A,int j); int DelList(SeqList *L,int i,SeqList *e,int j) /*在顺序表L中删除第i个数据元素,并用指针参数e返回其值。i 的合法取值为1≤i≤st+1 */ { int k,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 { e->elem[b]=L->elem[a];} e->last=b; /* 将删除的元素存放到e所指向的变量中*/ for(k=i;k+j-1<=L->last;k++) { L->elem[k-1]=L->elem[k+j-1]; }/*将后面的元素依次前移*/ L->last=L->last-j; printf("删除的元素值为:"); for(c=0;c { printf("%d ",e->elem[c]);} printf("\n"); return(OK); } void main() { SeqList *l,*q; int p,r; int i,j,m; l = (SeqList*)malloc(sizeof(SeqList)); q = (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); for(i=0;i<=r-1;i++) {printf("%d ",l->elem[i]);} printf("\n"); printf("请输入要删除的元素位置(位置+个数):\n"); scanf("%d%d",&p,&j); m=DelList(l,p,q,j); if(m==0) {printf("无法删除"); exit(0);} else if(m==1)