- 37
- 0
- 约1.53千字
- 约 3页
- 2018-06-28 发布于河南
- 举报
线性表的排序与合并(C语言)
线性表的排序与合并(C语言)#include stdio.h#include malloc.h#include stdlib.h#define maxsize 1024typedefintdatatype;typedefstruct{datatype data[maxsize];int last;} sequenlist;voidcreatlist (sequenlist *L){ intn,i;inttmp;printf(请输入表数据的个数:\n);scanf(%d,n);printf(请输入数据:\n);for(i=0;in;i++){ fflush(stdin);scanf(%d,tmp); L-data[i]=tmp; } L-last=n-1;printf(\n);}voidcreatlistmerge (sequenlist *L){ intn,i;printf(请输入表数据的个数:\n);scanf(%d,n);for(i=0;in;i++) {fflush(stdin); L-data[i]=0; } L-last=n-1;}void printout (sequenlist *L){ int i;for(i=0;i=L-last;i++){ printf(data[%d]=,i);printf(%d\n,L-data[i]); }}void sort(sequenlist *L){int i, j;datatype a;for(i=0;iL-last;i++)for(j=0;jL-last-i;j++)if(L-data[j]L-data[j+1]) {a=L-data[j]; L-data[j]=L-data[j+1];L-data[j+1]=a; }}void merge(sequenlist *L1,sequenlist *L2,sequenlist *L3){int i;for(i=0;i=L1-last;i++) L3-data[i]=L1-data[i];for(i=0;i=L2-last;i++) L3-data[i+(L1-last)+1]=L2-data[i];}void main(){sequenlist *L1,*L2,*L3;int i; L1=(sequenlist*)malloc(sizeof(sequenlist)); L2=(sequenlist*)malloc(sizeof(sequenlist)); L3=(sequenlist*)malloc(sizeof(sequenlist));printf(第一张表:\n);creatlist(L1);printf(第二张表:\n);creatlist(L2);printf(第一张表为:\n);printout(L1);printf(\n);printf(第二张表为:\n);printout(L2);printf(\n);creatlistmerge(L3);sort(L1);sort(L2);printf(排序后的第一张表为:\n);printout(L1);printf(排序后的第二张表为:\n);printout(L2);printf(\n);merge(L1,L2,L3);printf(合并表为:\n);printout(L3);sort(L3);printf(排序后的总表为:\n);printout(L3);}
原创力文档

文档评论(0)