我需要实现我们在python中使用的“list”数据结构。 python中的列表:http://docs.python.org/tutorial/datastructures.html 我必须实现list的功能,将列表视为数组,并需要动态分配内存。 我需要在必要时使用函数,指针和结构。 (用C语言表示!)
答案 0 :(得分:1)
要模拟链表,您必须研究这些主题
1.使用malloc calloc realloc and free
分配动态内存2.c中的结构
3. c中的基本指针 对于动态内存分配,您可以访问
Dynamic Memory Allocation in c
这里给出了一个很好的教程Linked List in C
修改强>
与链表实现相比,列表的数组实现更容易。在数组实现中,您还可以使用malloc为您的数组动态分配内存,并使用realloc来增加/减少内存。
例如
int *base;
int initial_size; //Take Input from user.
base=(int *)malloc(sizeof(int) * initla_size);
if(!base) //Ensure if memory is allocated
{
//Rest of the code
}
Now to insert eleements you could simply use
base[i]=element;
但在此之前你必须研究数组和指针如何在C语言中工作,更具体地说是动态记忆分配部分..
答案 1 :(得分:0)
您需要一个数据结构,其中包含指向包含数据的数组的指针和包含数组大小的整数。如果您不想在每次添加新项目时展开数组,请同时跟踪列表中的项目数,这样您就可以将数组增长到所需数量以上。
您可以使用malloc
创建数组和数据结构,realloc
来增长数组,使用free
来释放数组和数据结构。