AdjList类型的指针 *G调用我写的函数
时间: 2024-02-06 09:11:01 浏览: 28
好的,使用 `AdjList` 类型的指针 `*G` 调用你写的函数的示例代码如下:
```c
AdjList G;
/* 假设已经初始化了 G */
Data v = 5;
AdjList *pG = &G;
int index = LocatVex(pG, v);
```
在这段代码中,我们先定义了一个 `AdjList` 类型的变量 `G`,并且已经初始化完成。然后我们定义了一个指向 `AdjList` 类型的指针 `pG`,将 `&G` 赋值给指针变量 `pG`,即将 `G` 的地址传入指针中。接下来,我们定义了一个 `Data` 类型的变量 `v`,并赋值为 5,表示要查找值为 5 的结点在图中的位置。最后,我们调用 `LocatVex` 函数,将 `pG` 作为第一个参数,即将 `G` 的地址传入函数中,实现使用指针调用函数。函数返回值为结点的位置下标,存储在 `index` 变量中。
相关问题
用指针调用我写的函数 不要重写函数
好的,下面是使用指针调用你写的函数的示例代码:
```c
AdjList G;
/* 假设已经初始化了 G */
Data v = 5;
int index = LocatVex(&G, v);
```
在这段代码中,我们先定义了一个 `AdjList` 类型的变量 `G`,并且已经初始化完成。然后我们定义了一个 `Data` 类型的变量 `v`,并赋值为 5,表示要查找值为 5 的结点在图中的位置。最后,我们调用 `LocatVex` 函数,将 `&G` 作为第一个参数,即将 `G` 的地址传入函数中,实现使用指针调用函数。函数返回值为结点的位置下标,存储在 `index` 变量中。
调用我写的函数 只用一个指针变量!
好的,如果要只用一个指针变量调用你写的函数,可以这样实现:
```c
int LocatVex(AdjList *G, Data v) {
int i;
for (i = 0; i < G->vexnum; i++) {
if (G->vertex[i].data == v) {
return i;
}
}
return -1;
}
int main() {
AdjList *pG = (AdjList*)malloc(sizeof(AdjList));
/* 假设已经初始化了 pG */
Data v = 5;
int index = LocatVex(pG, v);
free(pG);
return 0;
}
```
在这个示例中,我们定义了一个指向 `AdjList` 类型的指针变量 `pG`,并且通过 `malloc` 函数为其分配了内存空间。定义变量 `v`,并赋值为 5,表示要查找值为 5 的结点在图中的位置。最后,我们调用 `LocatVex` 函数,将 `pG` 作为第一个参数,实现使用指针调用函数。函数返回值为结点的位置下标,存储在 `index` 变量中。完成操作后,我们需要使用 `free` 函数释放动态分配的内存空间,避免内存泄漏。