在c语言中生成不同的随机线性表
时间: 2024-09-20 16:01:18 浏览: 37
在 C 语言中生成不同的随机线性表(数组或链表),通常需要使用 `rand()` 函数配合 `srand()` 函数来初始化随机数种子,并结合数组索引或链表节点的遍历。这里有两个简单例子:
1. **生成随机数组示例** (假设我们有一个固定大小的数组)
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ARRAY_SIZE 10
void create_random_array(int arr[], int n) {
srand(time(0)); // 设置随机数种子
for (int i = 0; i < n; i++) {
arr[i] = rand() % 100; // 随机生成0到99之间的整数
}
printf("Random Array: ");
for (int i = 0; i < ARRAY_SIZE; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int my_array[ARRAY_SIZE];
create_random_array(my_array, ARRAY_SIZE);
return 0;
}
```
2. **生成随机链表示例** (假设我们有一个简单的单向链表结构)
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
typedef struct Node {
int data;
struct Node* next;
} Node;
Node* create_random_linked_list(int n) {
Node* head = NULL;
Node* current = NULL;
srand(time(0));
for (int i = 0; i < n; i++) {
Node* newNode = malloc(sizeof(Node));
newNode->data = rand() % 100;
newNode->next = NULL;
if (!head) {
head = newNode;
} else {
current->next = newNode;
}
current = newNode;
}
return head;
}
// 打印链表
void print_list(Node* head) {
while (head != NULL) {
printf("%d ->", head->data);
head = head->next;
}
printf("NULL\n");
}
int main() {
int num_nodes = 5;
Node* list_head = create_random_linked_list(num_nodes);
print_list(list_head);
return 0;
}
```
这两个例子展示了如何分别生成随机数组和链表。每次运行程序时,因为随机数种子来自当前时间,所以生成的结果都会有所不同。
阅读全文