数据结构上机试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构实验报告
姓名:张盈武
学号:136538105
数据结构上机试题
一、顺序表的操作
(1)插入元素操作:将新元素x插入到顺序表a中第i个位置。
(2)删除元素操作:删除顺序表a中第i个元素。#include
#include
#include
#define overflow 0
#define list_size 100
#define ok 1
#define maxsize 80
#define listincrement 10
#define error 1
typedef int elemtype;
typedef struct
{
int *elem;
int length;
int listsize;
}list;
int init(list &l)
{
l.elem=(int *)malloc(maxsize *sizeof(int)); if(!l.elem) return(overflow);
l.length=0;
l.listsize=list_size;
return ok;
}
void create(list *l)
{
int i,n;
printf("创建一个有序表:\n");
printf("输入元素个数:");
scanf("%d",&n);
l->length=n;
for(i=0;i { printf("输入第%d个元素:",i+1); scanf("%d",&l->elem[i]); printf("\n"); }} int insert(list &l,int i, elemtype & e ) { if(i<1||i>l.length+1) return error; elemtype *q,*p; q=&(l.elem[i-1]); p=&(l.elem[l.length-1]); for(p;p>=q;--p) *(p+1)=*p; *q=e; ++l.length; return ok;} int printflist(list l) { for(int i=0;i<=l.length-1;i++) { printf("%d",l.elem[i]);} return ok;} int deletelist(list &l,int i,elemtype &e) { if((i<1)||(i>l.length)) return error; for( i;i<=l.length-1;i++) l.elem[i]=l.elem[i+1]; --l.length; return ok; } int main(){ list la; init(la); create(&la); printflist(la); printf("是否要插入元素:(输入1为是,0否)"); int s; scanf("%d",&s); if(s==1) { printf("输入要插入的位置:"); int i; scanf("%d",&i); printf("输入要插入的元素:"); int a; scanf("%d",&a); insert(la,i,a); } printflist(la); printf("是否要删除元素:(1为是,0为否)"); int n; scanf("%d",&n); if(n==1) { printf("输入要删除的位置:"); int m; scanf("%d",&m); printf("输入要删除的元素:"); int w; scanf("%d",&w); deletelist(la,n,m); printflist(la); } return ok; } 二、单链表的操作 (1)创建一个带头结点的单链表; (2)插入元素操作:将新元素x插入到单链表中第i 个元素之后; (3)删除元素操作:删除单链表中值为x的元素;#include #include #include #include #define error 0 #define ok 1 #define equal 1 #define overflow -1 #define list_size 100 #define listincrement 10 #define null 0 typedef int elemtype; typedef struct lnode { elemtype data; struct lnode *next; lnode *head; }lnode,* linklist; linklist init(linklist &head) { int i=1; int j; linklist l; head=(lnode*)malloc(sizeof(lnode)); head->next=null;