文档详情

数据结构顺序表.docx

发布:2021-07-19约4.05千字共6页下载文档
文本预览下载声明
数据结构顺序表 数据结构顺序表 实验1 顺序表的操作 1. 输入一组整型元素序列,建立顺序表。 2. 实现该顺序表的遍历。 3. 在该顺序表中进行顺序查找某一元素,查找成功返回1,否则返回0。 4. 判断该顺序表中元素是否对称,对称返回1,否则返回0。 5. 实现把该表中所有奇数排在偶数之前,即表的前面为奇数,后面为偶数。 6. * 输入整型元素序列利用有序表插入算法建立一个有序表。 7. * 利用算法6建立两个非递减有序表并把它们合并成一个非递减有序表。 8. 编写一个主函数,调试上述算法。 9. * 综合训练:利用顺序表实现一个班级学生信息管理(数据录入、插入、删除、排序、查找等) #include stdio.h #include stdlib.h #define MAXSIZE 100 //表中元素的最大个数 typedef int ElemType; //元素类型 typedef struct list ElemType elem[MAXSIZE]; //静态线性表 int length; //表的实际长度 }SqList; //顺序表的类型名 void creSqList(SqList list)//1.建立顺序表 int n,i; printf(n=); scanf(%d, n); for(i=0;i printf(No %d = , i+1); scanf(%d, x); list.elem[i]=x; list.length=n; void traverse(SqList abc)//2. 表的遍历 for(int i=0;i printf(%d , abc.elem[i]); void Find(SqList abc)//3. 表中元素查找 int a,m=0,i=0; printf(请输入需要查找的数据:); scanf(%d,a); while (i printf(第三题答案是:%d\n\n\n,m); void symmetry(SqList abc)//4. 判断表是否为对称表,若是返回1,否则为0; //首先应考虑元素总数的个数。奇数时先找到中间元素,然后再比较其余元素是否一样。若为偶数,则直接头尾比较 int i=0,count=0,m=0,n=0; int len1,len2; int *str1,*str2; for( ;i count++; // printf (count=%d\n,count) ; if ( abc.length % 2 == 0 )//数组元素总数为偶数个 { } len1=count/2; len2=count/2; str1=(int*)malloc(len1*sizeof(int)); str2=(int*)malloc(len2*sizeof(int));//两个可变数组 for (i=0;i str2[m]=abc.elem [i+1]; if (i+1==abc.length) str2[m]=0; //printf(str2[%d]=%d\n,m,str2[m]); for (i = 0 ; i if (str1[i]==str2[abc.length / 2 - i - 1]) printf(第四题的答案是:%d\n,n); void jiou(SqList abc)//5. int *p ,*q ,temp; p=abc.elem[0]; q=abc.elem[abc.length-1]; while ( p if ( *p % 2 != 0)// 偶数 { p++; continue; } if ( *q % 2 == 0 ) { q--; continue; } temp=*p; *p=*q; *q=temp; } printf(调整之后为:\n); for (int i = 0 ; i printf(\n); void Insert(SqList a )//6. 因为上一步奇偶排序后有序表变为了无序表。故先做排序。采用冒泡排序方法 int i , j , k , n ; for ( i = 0 ; i if ( a.elem [i] a.elem
显示全部
相似文档