我想知道,怎么创建给定长度的静态链表,用函数封装
时间: 2023-05-22 09:03:04 浏览: 141
可以使用以下代码来创建给定长度的静态链表:
typedef struct node {
int data;
int next;
} Node;
int createStaticList(int a[], int n, Node s[]) {
int head, i;
head = 0;
for (i = 0; i < n; i++) {
s[i].data = a[i];
if (i != n - 1) {
s[i].next = i + 1;
} else {
s[i].next = 0;
}
}
return head;
}
在这个函数中,第一个参数a[]是一个整数数组,它包含了静态链表中所有节点的值,第二个参数n是静态链表的长度,第三个参数s[]是一个节点结构体数组,用来存储链表中的所有节点。该函数的返回值是链表的头指针。
例如,如果要创建一个长度为5的静态链表,节点值分别为1、2、3、4、5,可以使用以下代码:
#include <stdio.h>
int main() {
int a[5] = {1,2,3,4,5};
Node s[5];
int head = createStaticList(a, 5, s);
printf("The head pointer is: %d\n", head);
return 0;
}
输出结果是:
The head pointer is: 0
在这个例子中,head指向链表的第一个节点,即s[0]。每个节点的data成员存储了该节点的值,next成员存储了该节点的下一个节点在数组s[]中的下标。
阅读全文