顺序表的实现及基于顺序表的集合求并应用.docVIP

  • 5
  • 0
  • 约2.17千字
  • 约 3页
  • 2017-08-18 发布于重庆
  • 举报

顺序表的实现及基于顺序表的集合求并应用.doc

顺序表的实现及基于顺序表的集合求并应用.doc

sequenlist.h typedef int datatype; #define maxsize 1024 #define NULL -1 typedef struct { datatype data[maxsize]; int last; } sequenlist; int Locate( sequenlist *L, datatype x); int Length ( sequenlist *L); datatype Get ( sequenlist *L, int i); int Delete( sequenlist *L, int i); sequenlist.c #include stdio.h #include sequenlist.h int Locate( sequenlist *L, datatype x) { int i = 1; while ( i = (*L).last+1 (*L).data[i-1] !=x ) i++; if ( i = (*L).last+1 ) return i; else return NULL; } int Length ( sequenlist *L ) { return (*L).last+1; } datatype Get ( sequenlist *L, int i ) { if ( i =1 i = (*L).last+1) return (*L).data[i-1]; else printf ( 参数i 不合理! \n ); } int Insert ( sequenlist *L, datatype x, int i) { int j; if (i 1 || i (*L).last+2|| (*L).last == maxsize-1) return NULL; else { for ( j = (*L).last; j = i-1; j--) (*L).data[j+1] =(*L).data[j]; (*L).data[i-1] = x; (*L).last++; return 1; } } int Delete( sequenlist *L, int i ) { int j; if ((i1) || (i(*L).last+1)) { printf (error); return NULL; } else { for ( j = i; j = (*L).last; j++) (*L).data[j-1] = (*L).data[j]; (*L).last--; } return (1); } main.c #includestdio.h #includestdlib.h #includesequenlist.h void Union(sequenlist *A,sequenlist *B) { int n=Length(A); int m=Length(B); int i; for(i=1;i=m;i++) { int x=Get(B,i); int k=Locate(A,x); if(k==-1) { Insert (A, x, n+1); n++;} } } void main() { int m,n; int i; sequenlist *A,*B; A=(sequenlist *)malloc(sizeof(sequenlist)); B=(sequenlist *)malloc(sizeof(sequenlist)); printf(输入集合A中元素的个数:\n); scanf(%d,m); printf(输入集合A中的元素:\n); for(i=0;im;i++) scanf(%d,A-data[i]); A-last=m-1; printf(输入集合B中元素的个数:\n); scanf(%d, n); printf(输入集合B中的元素:\n); for(i=0;in;i++) scanf(%d,B-data[i]); B-last=n-1; Union(A,B); printf(输入集合A和

文档评论(0)

1亿VIP精品文档

相关文档