数据结构上机试题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;

相关文档
最新文档