1 #include<stdio.h>
2 #include<stdlib.h>
3 typedef int ElemType;
4 typedef struct SqList{
5 ElemType *elem ; // 线性表顺序表示的基本类型
6 int length; // 当前的表长
7 int listsize; // 当前分配存储空间的容量
8 }SqList ;
9
10 //创建顺序表
11 SqList InitList() {
12 SqList L;
13 L.elem = (ElemType*)malloc(10*sizeof(ElemType));
14 if(!L.elem)
15 exit(0);
16 L.length = 0;
17 L.listsize = 10;
18 return L;
19 }
20
21 //添加元素
22 int add(SqList &L) {
23 int i = 0;
24 for( ; ; )
25 {
26 char n = 'N';
27 if(L.length == L.listsize)
28 return L.listsize - L.length;
29 printf("请输入元素");
30 scanf( "%d" , &(L.elem[i]));
31 i++;
32 L.length++;
33 printf("是否继续输入Y/N");
34 fflush(stdin);
35 scanf("%c" , &n);
36 if(n != 'Y')
37 return L.listsize - L.length;
38 fflush(stdin);
39 }
40
41 }
42
43 //输出元素
44 void PrintfSqList(SqList &L) { //
45 for(int i = 0 ; i < L.length ; i ++ )
46 printf("///%d/// " , L.elem[i]);
47 }
48
49 //删除指定元素
50 int deleteSqList(SqList &L, int n){ //
51 if( n > L.length)
52 return 0 ;
53 for(int i = n ; i < L.listsize ; i++)
54 L.elem[i-1] = L.elem[i];
55 L.length--;
56 return 1 ;
57 }
58
59 //插入元素
60 int insertSqList(SqList &L , int n , int data) {
61 if( n > L.length || L.length == L.listsize)
62 return 0 ;
63 L.length++;
64 for( int i = L.length ; i >= n-1 ; i--)
65 L.elem[i] = L.elem[i-1];
66 L.elem[n-1] = data;
67 }
68
69 //倒序
70 int Reverseorder(SqList &L) {
71 for(int i = 0 ; i <= ( L.length - 1 ) / 2 ; i ++)
72 {
73 int data = L.elem[i];
74 L.elem[i] = L.elem[L.length - 1 - i];
75 L.elem[L.length-1-i] = data;
76 }
77 }
78
79 //排序 由小到大 或 由大到小
80 int sortSqList(SqList &L , int z) {
81 for(int i = 0 ; i < L.length ; i ++)
82 for(int j = L.length-1 ; j > i ; j--)
83 if( L.elem[j] <= L.elem[j-1])
84 {
85 int data = L.elem[j];
86 L.elem[j] = L.elem[j-1];
87 L.elem[j-1] = data;
88 }
89 if( z < 0)
90 Reverseorder(L);
91 return 0;
92 }
93
94 //删除所有元素
95 int deleteAll(SqList &L)
96 {
97 L.length = 0;
98 }
99 main() {
100 SqList L;
101 L = InitList();
102 add(L);
103 PrintfSqList(L);
104 // deleteSqList(L,1);
105 // insertSqList(L , 2 , 9);
106 // Reverseorder(L);
107 sortSqList(L , -1);
108 printf("\n");
109 PrintfSqList(L);
110
111 }