C语言设计一个算法,求一个单链表中的结点个数。
时间: 2024-03-27 09:36:34 浏览: 93
以下是C语言实现不带头结点单链表结点个数的算法:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义单链表结构体
typedef struct node {
int data;
struct node *next;
} Node, *LinkList;
// 初始化单链表
LinkList InitList() {
return NULL;
}
// 在单链表头部插入结点
LinkList InsertHead(LinkList head, int data) {
Node *newNode = (Node*) malloc(sizeof(Node));
newNode->data = data;
newNode->next = head;
head = newNode;
return head;
}
// 计算单链表结点个数
int GetNodeCount(LinkList head) {
int count = 0;
Node *p = head;
while (p != NULL) {
count++;
p = p->next;
}
return count;
}
int main() {
// 初始化单链表
LinkList head = InitList();
// 在单链表头部插入结点
head = InsertHead(head, 1);
head = InsertHead(head, 2);
head = InsertHead(head, 3);
head = InsertHead(head, 4);
head = InsertHead(head, 5);
// 计算单链表结点个数
int count = GetNodeCount(head);
printf("The number of nodes in the list is: %d", count);
return 0;
}
```
输出结果为:
```
The number of nodes in the list is: 5
```
阅读全文