#include <iostream>
using namespace std;
typedef struct listarr
{
int * arr;
int cap;
int size;
}LIST_ARR;
LIST_ARR* create_list(int vol)
{
LIST_ARR* list = new (LIST_ARR);
list->arr = new int[vol];
list->cap = vol;
list->size = 0;
return list;
}
void list_add(LIST_ARR* list,int data)
{
list->arr[list->size++] = data;
}
void list_insert(LIST_ARR* list, int data, int pos) // 在第几个的后面插入 从第一个开始
{
for(int i=list->size-1;i>=pos;i--)
{
list->arr[i+1] =list->arr[i];
}
list->arr[pos] = data;
list->size++;
}
void list_del(LIST_ARR* list,int pos) //删除第几个元素 从第一个开始
{
for(int i=pos-1;i<list->size;i++)
{
list->arr[i-1]=list->arr[i];
}
list->size--;
}
void list_print(LIST_ARR* list)
{
for(int i=0;i<list->size;i++)
{
cout<< list->arr[i]<<" ";
}
cout<<endl;
}
void list_destroy(LIST_ARR* list)
{
delete [] list->arr;
delete(list);
}
int main()
{
LIST_ARR* list = create_list(10);
list_add(list,10);
list_add(list,20);
list_add(list,30);
list_add(list,40);
list_add(list,50);
cout<<"the original list"<<endl;
list_print(list);
list_insert(list,25,2);//arr[2]
//list_insert(list,9,0);//arr[0]
cout<<"after insert 25 in arr[2]:"<<endl;
list_print(list);
// list_del(list,1); //删除第几个元素 从第一个开始 //删除后容易造成内存碎片
cout<<"del the arr: "<<endl;
list_print(list);
list_destroy(list);
return 0;
}
数组形式链表
关注公众号 海量干货等你