1:代码如下:
// ConsoleApplication15.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <malloc.h> typedef struct node//定义链表结构体 { int data;//节点内容 node *next;//指向结构体的指针,下一个节点 }node; node *create()//创建单链表 { int i = 0;//链表中数据的个数 node *head, *p, *q;//这些的本质是节点的地址 int x = 0; head = (node *)malloc(sizeof(node));//创建头结点 q = head;//初始化q,q代表末节点 while (1) { printf("please input the data:"); scanf_s("%d", &x); if (x == 0) break;//data为0时创建结束 p = (node *)malloc(sizeof(node));//用于每次输入链表的数据 p->data = x; if (++i == 1)//链表头的指针指向下一个节点 { head->next = p;//链表只有一个元素连接到head的后面 } else { q->next = p;//连接到链表尾端 } q = p;//q指向末节点 } q->next = NULL; return head; } int length(node *head) { int len = 0; node *p; p = head->next; while(p!=NULL) { len++; p = p->next; } return len; } int main() { node *head = create();//创建单链表 printf("Length:%d\n", length(head)); return 0; }
运行结果:
时间: 2024-10-13 06:17:21