计算链表结点个数 函数count的功能是:返回链表head中结点的个数。需在第一题写完create函数基础上将count函数与main函数补充完整。 输入格式: 在一行输入结点数据,以空格间隔,最后一个输入0,代表输入结束(0不成为新的结点)。 输出格式: 输出结点个数 输入样例: 在这里给出一组输入。例如: 1 2 3 4 5 6 0 输出样例: 在这里给出相应的输出。例如: 6 输入样例: 在这里给出一组输入。例如: 0 输出样例: 在这里给出相应的输出。例如: 0 可以在如下程序中补充代码,也可以自行编写完整代码。 #include <stdio.h> #include <stdlib.h> #define LEN sizeof(nod) typedef struct node { int data; struct node *next; }nod; nod *create() { /**/ /**/ } int count(nod *head) { /**/ /**/ } int main() { nod *head; head=/**/ /**///调用create函数 printf("%d",/**/ /**/); //调用count函数 return 0; }
时间: 2024-02-22 17:57:38 浏览: 137
补充代码如下:
```
#include <stdio.h>
#include <stdlib.h>
#define LEN sizeof(nod)
typedef struct node {
int data;
struct node *next;
} nod;
nod *create() {
nod *head, *p1, *p2;
head = NULL;
p1 = p2 = (nod *) malloc(LEN);
scanf("%d", &p1->data);
while (p1->data != 0) {
if (head == NULL) {
head = p1;
} else {
p2->next = p1;
}
p2 = p1;
p1 = (nod *) malloc(LEN);
scanf("%d", &p1->data);
}
p2->next = NULL;
free(p1);
return head;
}
int count(nod *head) {
int num = 0;
nod *p = head;
while (p != NULL) {
num++;
p = p->next;
}
return num;
}
int main() {
nod *head;
head = create();
printf("%d", count(head));
return 0;
}
```
其中,`create`函数用于创建链表并返回头结点,`count`函数用于计算链表结点个数,`main`函数调用`create`函数创建链表并将头结点赋值给`head`,然后调用`count`函数计算链表结点个数并输出。
阅读全文