文档详情

实验一 线性表的基本操作.doc

发布:2017-12-20约2.68千字共5页下载文档
文本预览下载声明
实验一 线性表的基本操作 实验目的 熟悉C或VC++语言上机环境。 会定义线性表的顺序存储结构和链式存储结构。 熟悉顺序表和链表的一些基本操作和应用。 加深对线性表的理解,逐步培养解决实际问题的编程能力。 实验环境 运行C或VC++的微机。 实验内容 1.已知线性表LA的数据元素(n个,n为偶数),现要求将LA拆开成两个新的线性表LB,LC。要求LB中的数据元素为LA中的奇数位序的数据元素(a1, a3, …, an-1),LC中的数据元素为LA中的偶数位序的数据元素(a2, a4, …, an)。 #includestdio.h #includemalloc.h #define max 600//定义线性表的最大长度 typedef struct { char *elem; char list[max];//线性表 int length;//指示当前线性表的长度 } sqlist; void initial(sqlist );//初始化线性表 void insert(sqlist ,int,char);//在线性表中插入元素 void initlist(sqlist ); void print(sqlist);//显示线性表中所有元素 void main() { sqlist la,lb,lc;//la,lb,lc为线性表 initial(la); initlist(lb); initlist(lc); int i; for(i=0;ila.length;i++) { if(i%2==0) insert(lb,i/2,la.list[i]); else insert(lc,i/2,la.list[i]); } printf(\n您输入的线性表元素为:\n); print(la); printf(线性表的奇数位次的元素为:\n); print(lb); printf(线性表的偶数位次的元素为:\n); print(lc); } void initial(sqlist v) { printf( ***本程序可以实现线性表奇偶位序的元素分别输出***\n); int i,a; printf(请输入一个偶数作为线性表的长度:\n); scanf(%d,a); while(a%2!=0) { printf(您刚才输入的是奇数,请重新输入一偶数:\n); scanf(%d,a); } v.length=a; printf(\n请输入线性表的元素:\n); getchar(); for(i=0;iv.length;i++) scanf(%c,v.list[i]); } void initlist(sqlist v) { v.elem=(char*)malloc(max*sizeof(char)); v.length=0; } void insert(sqlist v,int j,char c) { v.list[j]=c; v.length++; } void print(sqlist v) { int i; for(i=0;iv.length;i++) { printf(%c,v.list[i]); } printf(\n\n); } 2. 已知线性表LA的数据元素(n个),现要求将LA的数据元素复制到另一个线性表LB中。 #includestdio.h #includemalloc.h #define max 600 typedef struct { char *elem; char list[max]; int length; } sqlist; void initial(sqlist ); void initlist(sqlist ); void print(sqlist); void main() { printf(***本程序可以实现线性表的复制***\n); sqlist la,lb; initial(la); initlist(lb); int i; for(i=0;ila.length;i++) { lb.list[i]=la.list[i]; lb.length++; } print(lb); } void initial(sqlist v) { int i; printf(请输入线性表的长度:\n); scanf(%d,v.length); printf(请输入线性表的元素:\n); getchar(); for(i=0;iv.length;i++) scanf(%c,v.list[i]); } void initlist(sql
显示全部
相似文档