资源描述:
《数据结构实验答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、重庆文理学院软件工程学院实验报告册专业:_____软件工程___班级:_____软件工程2班___学号:_____4___姓名:_____周贵宇___________课程名称:___数据结构_指导教师:_____胡章平__________2013年06月25日实验序号1实验名称实验一线性表基本操作实验地点S-C1303实验日期2013年04月22日实验内容1.编程实现在顺序存储的有序表中插入一个元素(数据类型为整型)。2.编程实现把顺序表中从i个元素开始的k个元素删除(数据类型为整型)。3.编程序
2、实现将单链表的数据逆置,即将原表的数据(a1,a2….an)变成(an,…..a2,a1)。(单链表的数据域数据类型为一结构体,包括学生的部分信息:学号,姓名,年龄)实验过程及步骤1.#include#include#include#defineOK1#defineERROR0#defineTRUE1#defineFALSE0#defineElemTypeint#defineMAXSIZE100/*此处的宏定义常量表示线性表可能达到的最大长
3、度*/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("请
4、输入线性表的长度:");scanf("%d",&r);l->last=r-1;printf("请输入线性表的各元素值:");for(i=0;i<=l->last;i++){scanf("%d",&l->elem[i]);}px(l,i);printf("请输入要插入的值:");scanf("%d",&l->elem[i]);i++;px(l,i);l->last++;for(i=0;i<=l->last;i++){printf("%d",l->elem[i]);}printf("");
5、}voidpx(SeqList*A,intj){inti,temp,k;for(i=0;ielem[i]elem[k]){temp=A->elem[i];A->elem[i]=A->elem[k];A->elem[k]=temp;}}}}2.#include#include#include#defineOK1#defineERROR0#defineTRUE1#defi
6、neFALSE0#defineElemTypeint#defineMAXSIZE100/*此处的宏定义常量表示线性表可能达到的最大长度*/typedefstruct{ElemTypeelem[MAXSIZE];/*线性表占用的数组空间*/intlast;/*记录线性表中最后一个元素在数组elem[]中的位置(下标值),空表置为-1*/}SeqList;#include"common.h"#include"seqlist.h"voidpx(SeqList*A,intj);intDelList(Seq
7、List*L,inti,SeqList*e,intj)/*在顺序表L中删除第i个数据元素,并用指针参数e返回其值。i的合法取值为1≤i≤L.last+1*/{intk,a,b,c;if((i<1)
8、
9、(i>L->last+2)){printf("删除位置不合法!");return(ERROR);}if(j>L->last-i){printf("删除位置不合法!");return(ERROR);}for(b=0,a=i-1;aelem[b]=L->elem[a]
10、;}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;celem[c]);}printf("");return(OK);}voidmain(){SeqList*l,*q;intp,r;inti