c语言如何构造一个首尾相连的单链表
时间: 2024-05-03 20:22:19 浏览: 97
数据结构与算法实验2--单链表.docx
首先,需要定义一个单链表的结构体:
```c
struct node {
int data;
struct node *next;
};
```
其中,data表示节点存储的数据,next指向下一个节点。
接下来,可以定义一个函数来构造首尾相连的单链表,函数的参数为链表的头节点和链表的长度:
```c
void createCircularList(struct node *head, int length) {
struct node *p = head;
int i;
// 构造单链表
for (i = 0; i < length; i++) {
struct node *newNode = (struct node *)malloc(sizeof(struct node));
newNode->data = i + 1;
newNode->next = NULL;
p->next = newNode;
p = p->next;
}
// 将尾节点指向头节点,构成环形链表
p->next = head->next;
}
```
在这个函数中,先通过循环构造出一个普通的单链表。然后,将尾节点的next指针指向头节点的next指针,这样就构成了一个首尾相连的单链表。
阅读全文