赞
踩
本实验的顺序表元素的类型为char,完成如下实验要求:
(1)初始化顺序表L
(2)采用尾插法依次插入a、b、c、d、e
(3)输出顺序表L
(4)输出顺序表L的长度
(5)判断顺序表L是否为空
(6)输出顺序表的第3个元素
(7)输出元素a的逻辑位置
(8)在第4个元素位置上插入元素f
(9)输出顺序表L
(10)删除L的第3个元素
(11)输出顺序表L
(12)释放顺序表L
代码:
- #include"stdio.h"
- #include"malloc.h"
- #define MaxSize 50
- typedef struct{
- char data[MaxSize];
- int length;
- }SqList;
-
-
- void InitList(SqList *&L)
- {
-
-
- L=(SqList *)malloc(sizeof(SqList));
- L->length=0;
- }
-
-
-
-
- void DispList(SqList *L)
- {
- int i;
- for(i=0;i<L->length;i++)
- printf("%c",L->data[i]);
- printf("\n");
- }
-
-
- int ListLength(SqList *L)
- {
- return(L->length);
- }
-
-
- bool ListEmpty(SqList *L)
- {
- return(L->length==0);
- }
-
-
- bool getelem(SqList *L,int i)
- {
- if(i<1||i>L->length)
- return false;
- else
- {
- printf("%c",L->data[i]);
- return true;
- }
- }
-
-
- int LocateElem(SqList *L,char m)
- {
- int i=0;
- while(i<L->length&&L->data[i]!=m)
- i++;
- if(i>=L->length)
- return 0;
- else
- return i+1;
- }
-
-
- bool ListInsert(SqList *&L,int i,char m)
- {
- int j;
- if(i<1||i>L->length+1)
- return false;
- i--;
- for(j=L->length;j>i;j--)
- L->data[j]=L->data[j-1];
- L->data[i]=m;
- L->length++;
- return true;
- }
-
-
- bool ListDelete(SqList *&L,int i)
- {
- int j;
- if(i<1||i>L->length)
- return false;
- i--;
- for(j=i;j<L->length-1;j++)
- L->data[j]=L->data[j+1];
- L->length--;
- return true;
- }
-
-
- void DestroyList(SqList *&L)
- {
- free(L);
- }
-
-
- void main()
- {
-
- SqList *A;
- InitList(A);
- ListInsert(A,1,'a');
- ListInsert(A,2,'b');
- ListInsert(A,3,'c');
- ListInsert(A,4,'d');
- ListInsert(A,5,'e');
- DispList(A);
- ListLength(A);
- ListEmpty(A);
- getelem(A,3);
- LocateElem(A,97);
- ListInsert(A,4,102);
- DispList(A);
- ListDelete(A,3);
- DispList(A);
- DestroyList(A);
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。