typedef struct LNode{ //定义单链表结点类型 ELemType data; //每个节点存放一个数据元素 struct LNode *next; //指针指向下一个节点 }LNode,*LinkList; LNode * GetElem(LinkList L, int i){ int j=1; LNode *p=L->next; if(i==0) return L; if(i<1) return NULL; while(p != NULL && j<i){ p=p->next; j++; } return p; }
时间: 2024-04-11 13:26:50 浏览: 381
数据结构单链表的基本操作实现(包含源代码)上机报告
5星 · 资源好评率100%
这段代码是一个 C 语言中关于单链表的定义和获取指定位置元素的函数示例。它定义了一个名为 `LNode` 的结构体,其中包含一个名为 `data` 的数据元素和一个指向下一个节点的指针 `next`。另外,通过 `typedef` 关键字,将 `LNode` 和 `LinkList` 分别定义为结构体类型和结构体指针类型。
函数 `GetElem()` 的作用是根据给定的位置 `i` 获取链表中对应位置的元素节点。
以下是完整的示例代码:
```c
typedef struct LNode {
ElementType data;
struct LNode* next;
} LNode, *LinkList;
LNode* GetElem(LinkList L, int i) {
int j = 1;
LNode* p = L->next;
if (i == 0)
return L;
if (i < 1)
return NULL;
while (p != NULL && j < i) {
p = p->next;
j++;
}
return p;
}
```
在这个示例中,`GetElem()` 函数接受一个链表头指针 `L` 和一个位置 `i` 作为参数。它首先判断特殊情况,如果位置 `i` 为 0,则返回链表头指针 `L`。如果位置 `i` 小于 1,则返回 NULL 表示无效位置。然后,通过一个循环找到第 `i` 个节点,并返回该节点的指针。
请注意,这段代码中的 `ElementType` 并未给出具体的定义,你可以根据实际情况将其替换为你所需的数据类型。
阅读全文