#include<stdio.h>
#include<stdlib.h>
#define InitSize 10
typedef int ElemType;
typedef struct {
ElemType* data;
int MaxSize, len;
}SqList;
void InitList(SqList& L)
{
L.data = (ElemType*)malloc(InitSize * sizeof(ElemType));
L.MaxSize = InitSize;
L.len = 0;
}
void IncreaseList(SqList& L, int Increa_len)
{
ElemType* p = L.data;
L.data = (ElemType*)malloc((L.MaxSize + Increa_len) * sizeof(ElemType));
for (int j = 0; j < L.len; j++)
{
L.data[j] = p[j];
}
L.MaxSize += Increa_len;
free(p);//此处一定要free!!!!!
}
bool InsertList(SqList& L, ElemType i, ElemType e)
{
int j;
if (i<1 || i>L.len + 1) return false;
if (L.len >= L.MaxSize) return false;
for (j = L.len; j >= i; j--)
L.data[j] = L.data[j - 1];
L.data[j] = e;
L.len++;
return true;
}
bool PrintList(SqList L)
{
if (L.len <= 0) return false;
for (int i = 0; i < L.len; i++)
{
printf("%4d", L.data[i]);
}
printf("\n");
return true;
}
bool ListDelete(SqList& L, ElemType i, ElemType& e)
{
if (i<1 || i>L.len) return false;
if (L.len < 1) return false;
e = L.data[i - 1];
for (int j = i - 1; j < L.len - 1; j++)
{
L.data[j] = L.data[j + 1];
}
L.len--;
return true;
}
//按位查找
int LocateElem(SqList L, ElemType e)
{
if (L.len < 1) return 0;
for (int j = 0; j < L.len; j++)
{
if (L.data[j] == e)//找到的第一个返回
return j + 1;
}
return 0;
}
int GetElem(SqList L, int i)
{
if (L.len < 1 || i>L.len) return false;
return L.data[i - 1];
}
int main()
{
SqList L;//静态初始化
bool ret;
InitList(L);
for (int k = 0; k < L.MaxSize; k++)
{
L.data[k] = k+1;
L.len++;
}
PrintList(L);
IncreaseList(L, InitSize);
/*if (ret) printf("打印成功");
else printf("答应失败");*/
ret = InsertList(L, 2, 60);//插入元素函数
if (ret)
{
printf("insert succseeful\n");
PrintList(L);
}
else printf("insert fail\n");
int e = -1;
ret = ListDelete(L, 2, e);
if (ret)
{
printf("delete succseeful, e=%d\n", e);
PrintList(L);
}
else printf("delete fail\n");
int Locate_i = LocateElem(L, 5);
if (Locate_i)
printf("locate succseeful, Locate_i=%d\n", Locate_i);
else printf("NO HAVE\n");
int i = 2;
printf("elem_%d=%d", i, GetElem(L, i));
return 0;
}
顺序表--动态
最新推荐文章于 2024-07-18 13:20:33 发布