순서표의 위치 역치 M

12440 단어 순서
 1 #define LIST_SIZE 80

 2 #define LISTINCREMENT 10

 3 #define ok 1

 4 #define overflow -1

 5 #define error -2

 6 #include<stdio.h>

 7 #include<stdlib.h>

 8 typedef struct

 9 {

10    int *elem;

11    int length;

12    int listsize;

13 }sqlist;

14 int initlist(sqlist &L)

15 {

16    L.elem=(int *)malloc(LIST_SIZE*sizeof(int));

17    if(!L.elem)  exit(overflow);

18    L.length=0;

19    L.listsize=LIST_SIZE;

20    return ok;

21 }

22 int listinsert(sqlist &L,int i,int e)

23 {

24    int *p,*q,*newbase;

25    if(i<1||i>L.length+1) return error;

26    if(L.length>=L.listsize)

27    {

28      newbase=(int *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(int));

29      if(!newbase) exit(overflow);

30      L.elem=newbase;

31      L.listsize +=LISTINCREMENT;

32    }

33    q=&(L.elem[i-1]);

34    for(p=&(L.elem[L.length-1]);p>=q;--p)  *(p+1)=*p;

35    *q=e;

36    ++L.length;

37    return ok;

38 }

39 int ListDelete(sqlist &L,int i,int &e)

40 {

41    int *p,*q;

42    if((i<1)||(i>L.length))  return(error);

43    p=&(L.elem[i-1]);

44    e=*p;

45    q=L.elem+L.length-1;

46    for(++p;p<=q;++p)  *(p-1)=*p;

47    --L.length;

48    return ok;

49 }

50 void converse(sqlist &L)

51 {

52   int j,m,t;

53   m=L.length-1;

54   for(j=0;j<m;j++,m--)

55   {

56     t=L.elem[j];

57     L.elem[j]=L.elem[m];

58     L.elem[m]=t;

59   }

60 }

61  void printlist(sqlist L)

62 {

63    int i;

64    printf("
*********************
"); 65 printf(" :
"); 66 for(i=0;i<L.length;i++) 67 printf("%d ",L.elem[i]); 68 printf("
*********************
"); 69 } 70 main() 71 { 72 int i,j,e; 73 sqlist L1; 74 initlist(L1); 75 printf(" :
"); 76 scanf("%d",&L1.length); 77 printf(" :
"); 78 for(i=0; i<L1.length; i++) 79 scanf("%d",&L1.elem[i]); 80 printlist(L1); 81 converse(L1); 82 printlist(L1); 83 printf(" :
"); 84 scanf("%d%d",&j,&e); 85 listinsert(L1,j,e); 86 printlist(L1); 87 printf(" :
"); 88 scanf("%d",&j); 89 ListDelete(L1,j,e); 90 printlist(L1); 91 system("pause"); 92 }

좋은 웹페이지 즐겨찾기