在C中初始化数组中的元素不会插入到另一个数据结构中
我在这里用C创建了一个代码,在这里我声明并初始化了一个整数数组。我将把所有这些元素放在一个偏序树中。但是首先,在我创建一个heapify函数来满足POT属性之前,我首先测试了insert函数。但当显示所有元素时,将只显示一个元素,并且不会显示我声明的数组中的所有元素 以下是我的数据结构:在C中初始化数组中的元素不会插入到另一个数据结构中,c,arrays,C,Arrays,我在这里用C创建了一个代码,在这里我声明并初始化了一个整数数组。我将把所有这些元素放在一个偏序树中。但是首先,在我创建一个heapify函数来满足POT属性之前,我首先测试了insert函数。但当显示所有元素时,将只显示一个元素,并且不会显示我声明的数组中的所有元素 以下是我的数据结构: typedef struct{ int arr[MAX]; int last; }Heap; 这是我调用initHeap()和insert()的示例主函数: 这是我的显示器(
typedef struct{
int arr[MAX];
int last;
}Heap;
这是我调用initHeap()和insert()的示例主函数:
这是我的显示器()
void显示(堆A)
{
int x;
printf(“堆中的元素是:\n”);
对于(x=0;x< p>我认为您的C++ > ->最后=0 < /COD>应该是代码> A- >最后= x< /代码> .< /P> < P>我认为您的<代码> ->最后=0 < /代码>应该是代码> A- >最后一个X/<代码> .< /P>为什么这个标记的C++是C?我没有看到任何“显示”这里甚至是insert
实现。为什么要发布不相关的代码,而忽略明显相关的?void insertToHeap(Heap*A,char x){if(A->last!=MAX-1){A->arr[A->last]=x;A->last+1;}否则{printf(\nHeap已满!\n”);}你的问题不清楚。也不要在评论中转储代码,请编辑你的原始问题。(参见C++/C/标签标签下的“编辑”按钮)<代码> A- >最后1;<代码> > >代码> A- >最后一个+ 1;< /Cord>为什么这个标记的C++是C++的?我看不到任何“显示”。这里甚至是insert
实现。为什么要发布不相关的代码,而忽略明显相关的?void insertToHeap(Heap*A,char x){if(A->last!=MAX-1){A->arr[A->last]=x;A->last+1;}否则{printf(\nHeap已满!\n”);}我不清楚你的问题。也不要在评论中转储代码,请编辑你的原始问题。(请参见你那里的c++/c/arrays标签下的“编辑”按钮)A->last+1;
-->A->last+=1;
int main()
{
int elems[] = {10, 20, 5, 3, 9, 16, 2, 11, 10, 1};
int x;
Heap rec;
initHeap(&rec);
for(x=0; x<MAX; x++){
insertToHeap(&rec,elems[x]);
}
getch();
return 0;
}
void initHeap(Heap *A)
{
int x;
for(x=0; x<MAX; x++){
A->arr[x]=0;
}
A->last = 0;
}
void insertToHeap(Heap *A, char x)
{
if(A->last != MAX-1){
A->arr[A->last] = x;
A->last+1;
/*Function call to heapify the POT*/
}
else {
printf("\nHeap is full!\n");
}
}
void display(Heap A)
{
int x;
printf("Elements inside the heap are: \n");
for(x=0; x<MAX; x++){
printf("%d ", A.arr[x]);
}
printf("\nLast available cell: %d", A.last);
}