#include "stdafx.h"
#include
const int MAXSIZE = 10;
typedef struct
{
int *elem;
int length;
int maxsize;
}sqlist;
void initList(sqlist *L)
{
L->elem = (int *)malloc(L->maxsize*sizeof(int));
if (!L->elem) exit(0);
L->length = 0;
L->maxsize = MAXSIZE;
}
//插入第i个位置
void insertElem(sqlist *L,int i,int elem)
{
int *p, *q;
if (i(L->length+1))
exit(0);
if (L->length == L->maxsize)
{
L->elem = (int *)realloc(L->elem, (L->maxsize+5) * sizeof(int));
//if (!L->elem) exit(0);
L->maxsize = L->maxsize + 5;
}
for (p = &L->elem[L->length-1]; p > &L->elem[i-1]; p--)
*(p + 1) = *p;
L->elem[i - 1] = elem;
L->length++;
}
//删除第i个位置的元素
void delElem(sqlist *L,int i)
{
if (iL->length)
exit(0);
for (int *p = &L->elem[i]; p < &L->elem[L->length - 1]; p++)
*(p - 1) = *p;
L->length--;
}
int main()
{
sqlist l;
initList(&l);
for (int i = 0; i < 10; i++)
insertElem(&l, i + 1, i + 1);
cout << "dayin:" << endl;
for (int i = 0; i < 10; i++)
cout << l.elem[i];
delElem(&l,5);
cout << "打印删除后的数据:" << endl;
for (int i = 0; i < l.length; i++)
cout << l.elem[i];
system("pause");
return 0;
}
#include
#include
#include
using namespace std;
const int MAXSIZE = 10;
typedef struct
{
int *elem;
int length;
int maxsize;
}sqlist;
void initList(sqlist *L)
{
L->length = 0;
L->maxsize = MAXSIZE;
L->elem = (int *)malloc(L->maxsize*sizeof(int));
if (!L->elem) exit(0);
}
//插入第i个位置
void insertElem(sqlist *L, int i, int elem)
{
int *p, *q;
if (i > (L->length + 1))
exit(0);
if (L->length == L->maxsize)
{
L->elem = (int *)realloc(L->elem, (L->maxsize + 5) * sizeof(int));
//if (!L->elem) exit(0);
L->maxsize = L->maxsize + 5;
}
for (p = &L->elem[L->length - 1]; p > &L->elem[i - 1]; p--)
*(p + 1) = *p;
L->elem[i - 1] = elem;
L->length++;
}
//删除第i个位置的元素
void delElem(sqlist *L, int i)
{
if (i > L->length)
exit(0);
for (int *p = &L->elem[i]; p < &L->elem[L->length]; p++)
*(p - 1) = *p;
L->length--;
}
int main()
{
sqlist l;
initList(&l);
for (int i = 0; i < 10; i++)
insertElem(&l, i + 1, i + 1);
cout << "dayin:" << endl;
for (int i = 0; i < 10; i++)
cout << l.elem[i] << " ";
delElem(&l, 5);
cout << "打印删除后的数据:" << endl;
for (int i = 0; i < l.length; i++)
cout << l.elem[i] << " ";
system("pause");
return 0;
}
头文件为stdio.h, stdlib.h, iostream
对于malloc申请了内存空间,后面还应该加入空间释放。free