我在C中实现了一个可调整大小的数组,如下所示:
/mypage/#something
现在我需要修改这个数据结构,以便在可调整大小的数组中存储char *而不是整数。所以我需要修改函数以使集合为空,插入和删除元素到集合中,并检查是否元素在集合中。另外set不包含相同字符串的重复副本(char *具有相同的内容,我们可以使用strcmp来比较字符串)。
所以请帮助修改它。
示例:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "ArrayList.h"
void initArray(Array *a, size_t initialSize) {
a->array = (int *)malloc(initialSize * sizeof(int));
a->used = 0;
a->size = initialSize;
}
void insertIntoArray(Array *a, int element) {
if (a->used == a->size) {
a->size *= 2;
a->array = (int *)realloc(a->array, a->size * sizeof(int));
}
a->array[a->used++] = element;
}
void removeLast(Array *a)
{
if (a->used == 0) {}
else{
a->used--;
}
}
void freeArray(Array *a) {
free(a->array);
a->array = NULL;
a->used = a->size = 0;
}
int main(){
Array a;
initArray(&a,10); // initially 10 elements
int i;
for(i=0;i<100;i++)
insertIntoArray(&a,i);
printf("%d\n",a.array[9]);
printf("%d\n", a.used);
freeArray(&a);
}
我的ArrayList.h是这样的:
MySet *s;
initSet(s);
insert(s, “Hello”);
insert(s, “world”);
insert(s, “Hello”);
del(s, “world”);
isInSet(s, “Hello”);
emptySet(s);