当前位置: 首页 > news >正文

【链表操作】链表长度

#include <stdio.h>
#include <stdlib.h>struct node {char data;struct node *next;
};int length(struct node* head);
void destroy(struct node* head);
struct node* headinsert(void);int main() {struct node *head;head = headinsert();   //用尾插法创建链表printf("%d", length(head));//释放资源destroy(head);return 0;
}struct node* headinsert(void) {struct node* head = NULL;char c;struct node *p, *q;while (1) {c = getchar();if (c == '#') break;//申请结点空间p = (struct node *)malloc(sizeof(struct node));//初始化结点数据域p->next = NULL;p->data = c;//尾插法q = head;if (q == NULL) {head = p;} else {while (q->next!= NULL) {q = q->next;}q->next = p;}}return head;
}int length(struct node* head) {int count = 0;struct node* p = head;while (p!= NULL) {count++;p = p->next;}return count;
}void destroy(struct node* head) {struct node *p;while (head!= NULL) {p = head;             //p指向要销毁的结点head = head->next;   //head指向再下一个要销毁的结点free(p);               //销毁p指向的结点}
}

        设计函数int length(struct node * head);,根据链表的头指针head,计算链表的长度(即结点个数)并返回该长度。

        一行字符,以#结尾,将以#前的每个字符(不包括#)为数据域的值创建多个结点,并将这些结点,利用尾插法链接成链表


http://www.mrgr.cn/news/34482.html

相关文章:

  • css-50 Projects in 50 Days(4)
  • Hbase Shell
  • 第8章利用CSS制作导航菜单
  • Python---re模块(正则表达式)
  • 在 Service Worker 中caches.put() 和 caches.add()/caches.addAll() 方法他们之间的区别
  • vue2使用 <component> 标签动态渲染不同的表单组件
  • 分享5款全能AI论文写作工具,一键生成万字论文
  • 在线文档搜索服务测试报告
  • 机械快门,电子快门,电子前帘快门 的原理
  • 基于微信小程序的商品展示+ssm(lw+演示+源码+运行)
  • 【计算机网络篇】计算机网络概述
  • 室内院内常见的不知名蚊虫(昆虫)图鉴和防治方法
  • 【初阶数据结构】详解二叉树 - 树和二叉树(三)(递归的魅力时刻)
  • 初学者怎么入门大语言模型(LLM)?看完这篇你就懂了!
  • yolov8 下载及使用
  • 7、论文阅读:20 年来的物体检测:一个调查
  • 颍川陈氏——平民崛起的典范
  • C++封装
  • SpringBoot 整合 apache fileupload 轻松实现文件上传与下载(通用版)
  • 设计模式的六大原则
  • 【HarmonyOS】应用权限原理和封装
  • QT设计中文输入法软键盘DLL给到C#开发步骤
  • 常见框架漏洞
  • JBoss EJBInvokerServlet CVE-2013-4810 反序列化漏洞
  • 线程同步:消费者模型(非常重要的模型)
  • STM32之串口通信