有n个人围成一圈c语言链表
时间: 2024-09-26 09:10:52 浏览: 34
在C语言中,如果你想要模拟n个人围成一圈的情况,通常会使用双向链表或者动态数组(如结构体数组),因为链表可以方便地表示这种环状结构。这里我假设每个人都有一个数据结构,比如`Person`,包含姓名`name`和指向下一个人的指针。
```c
// 假设Person结构体定义
typedef struct Person {
char name[50];
struct Person* next; // 指向下一个成员的指针(形成环)
} Person;
// 创建一个大小为n的链表
void create_circle(int n, Person** head) {
*head = (Person*)malloc(sizeof(Person)); // 链表头节点
(*head)->next = *head; // 设置首尾相连
for (int i = 1; i < n; ++i) {
Person* current = *head;
Person* newNode = (Person*)malloc(sizeof(Person));
newNode->name = "Person" + i; // 假设名字长度固定
newNode->next = current->next;
current->next = newNode;
}
}
// 打印链表成员,模拟“顺时针”打印一圈人名
void print_circle(Person* head) {
Person* temp = head;
while (temp != NULL) {
printf("%s -> ", temp->name);
temp = temp->next;
}
printf("NULL\n");
}
阅读全文