数组形式链表

#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;
}


关注公众号 海量干货等你
原文地址:https://www.cnblogs.com/sowhat1412/p/12734505.html