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

黑龙江龙采做网站如何app开发公司哪家好

黑龙江龙采做网站如何,app开发公司哪家好,房地产开发网站建设,广东品牌网站建设报价C语言-单链表的结构体定义 ⭐️ 一、单链表的结构体定义 🍭 typedef struct LNode { // 定义结构体 LNode,表示链表中的一个结点int data; // 数据域,存储结点的值struct LNode *next; // 指针域,指向下一个结点 } LN…

C语言-单链表的结构体定义 ⭐️

一、单链表的结构体定义 🍭

在这里插入图片描述

typedef struct LNode {  // 定义结构体 LNode,表示链表中的一个结点int data;           // 数据域,存储结点的值struct LNode *next; // 指针域,指向下一个结点
} LNode, *LinkList;     // 为结构体 LNode 定义两个别名:LNode 和 LinkList

代码功能说明: 🎀

  • 定义链表结点结构体:🍉
    • LNode 是链表中的一个结点,包含两个成员:👇🏻
      • data:存储结点的值(整数类型)。
      • next:指向下一个结点的指针。
  • 定义别名:🍉
    • LNode:表示一个链表结点。
    • LinkList:表示指向链表结点的指针(通常用于表示链表的头指针)。

代码逻辑详解: 🎀

  • 结构体定义:🍉
    • struct LNode 定义了一个链表结点的结构体。
    • data 是结点的数据域,用于存储整数值。
    • next 是结点的指针域,指向下一个结点。
  • 别名定义:🍉
    • typedefstruct LNode 定义了两个别名:
    • LNode:表示一个链表结点。
    • LinkList:表示指向链表结点的指针(通常用于表示链表的头指针)。

在这里插入图片描述

#include <stdio.h>  // 包含标准输入输出库,用于使用printf等函数
#include <stdlib.h> // 包含标准库函数,用于使用malloc等函数// 定义链表结点的结构体
typedef struct LNode {int data;           // 数据域,存储结点的值struct LNode *next; // 指针域,指向下一个结点
} LNode, *LinkList;     // 为结构体 LNode 定义两个别名:LNode 和 LinkList// 创建一个新结点
LNode *createNode(int data) {LNode *newNode = (LNode *)malloc(sizeof(LNode));  // 动态分配内存,创建一个新结点newNode->data = data;  // 设置新结点的数据域newNode->next = NULL;  // 设置新结点的指针域为NULLreturn newNode;        // 返回新结点的指针
}// 打印链表
void printList(LinkList L) {LNode *p = L;  // 定义指针p,指向链表的头结点while (p != NULL) {  // 遍历链表,直到p为NULLprintf("%d -> ", p->data);  // 打印当前结点的值p = p->next;  // 移动到下一个结点}printf("NULL\n");  // 打印链表结束标志
}int main() {// 创建链表 1 -> 2 -> 3 -> NULLLinkList L = createNode(1);  // 创建头结点,值为1L->next = createNode(2);     // 创建第二个结点,值为2L->next->next = createNode(3);  // 创建第三个结点,值为3// 打印链表printList(L);  // 调用printList函数,打印链表return 0;  // 程序正常结束
}

在这里插入图片描述

二、LNode *LinkList 的区别 🍭

在这里插入图片描述

// 【写法1】
LNode *p;
p = L -> next;// 【写法2】
LinkList p;
p = L -> next;
  • LNode侧重于表示链表中的每个结点;
  • LinkList侧重于表示一个链表。
    • 一般用头指针表示一个链表,比如:链表L 表示为:LinkList L;

LNode *LinkList 的区别主要体现在 语义 和 用法 上,尽管它们在语法上是等价的(都是指向 LNode 结构体的指针)。以下是它们的详细区别:👇🏻

(一)、 定义 📚
  • LNode *
    • 表示指向 LNode 结构体的指针。
    • 通常用于表示链表中的某个结点。
  • LinkList
    • LNode * 的别名,通过 typedef 定义。
    • 通常用于表示链表的头指针,强调链表的整体性。
(二)、 语义 🌲
  • LNode *
    • 强调指向某个具体的链表结点。
    • 适合用于操作链表中的某个结点(如插入、删除、遍历等)。
  • LinkList
    • 强调指向链表的头结点,表示整个链表。
    • 适合用于表示链表的整体(如创建链表、打印链表等)。
(三)、 用法 🪜

LNode *:用于操作链表中的某个结点。

示例: 🌰

LNode *p = head;  // p 指向链表的头结点
while (p != NULL) {printf("%d ", p->data);  // 打印当前结点的值p = p->next;  // 移动到下一个结点
}

LinkList:用于表示链表的头指针,通常用于函数参数或返回值。

示例: 🌰

LinkList createList() {LinkList L = (LNode *)malloc(sizeof(LNode));  // 创建头结点L->next = NULL;return L;  // 返回链表的头指针
}
(四)、 代码示例 🍪

以下是一个完整的代码示例,展示 LNode *LinkList 的用法: 👇🏻

#include <stdio.h>  // 引入标准输入输出库,用于使用 printf 等函数
#include <stdlib.h> // 引入标准库,用于使用 malloc 和 free 等函数// 定义链表结点结构体
typedef struct LNode {int data;              // 结点的数据域,存储整型数据struct LNode *next;    // 结点的指针域,指向下一个结点
} LNode, *LinkList;        // LNode 是结点类型,LinkList 是指向 LNode 的指针类型// 创建一个新结点
LNode *createNode(int data) {LNode *newNode = (LNode *)malloc(sizeof(LNode)); // 动态分配内存,创建一个新结点newNode->data = data;  // 设置新结点的数据域newNode->next = NULL;  // 初始化新结点的指针域为 NULLreturn newNode;        // 返回新结点的指针
}// 打印链表
void printList(LinkList L) {LNode *p = L;  // 初始化指针 p,指向链表的头结点while (p != NULL) {  // 遍历链表,直到链表结束printf("%d -> ", p->data);  // 输出当前结点的数据p = p->next;  // 移动到下一个结点}printf("NULL\n");  // 输出链表结束标志 NULL
}// 创建链表
LinkList createList() {LinkList L = createNode(0);  // 创建头结点,数据域为 0LNode *p = L;  // 初始化指针 p,指向链表的头结点for (int i = 1; i <= 3; i++) {  // 循环插入 3 个新结点p->next = createNode(i);  // 在链表尾部插入新结点p = p->next;  // 移动指针 p 到新插入的结点}return L;  // 返回链表的头指针
}int main() {LinkList L = createList();  // 创建链表printList(L);  // 打印链表// 释放链表内存LNode *p = L;  // 初始化指针 p,指向链表的头结点while (p != NULL) {  // 遍历链表,释放每个结点的内存LNode *temp = p;  // 临时指针 temp 指向当前结点p = p->next;  // 移动指针 p 到下一个结点free(temp);  // 释放当前结点的内存}return 0;  // 程序正常结束
}
0 -> 1 -> 2 -> 3 -> NULL
(五)、 总结 🌈
特性LNode *LinkList
定义指向 LNode 结构体的指针LNode * 的别名
语义强调指向某个具体的链表结点强调指向链表的头结点,表示整个链表
用法用于操作链表中的某个结点用于表示链表的头指针
适用场景遍历、插入、删除等操作创建链表、返回链表头指针等操作
  • LNode * 更适合用于操作 链表中的某个结点
  • LinkList 更适合用于表示 链表的整体(头指针)

在这里插入图片描述

http://www.dtcms.com/wzjs/192682.html

相关文章:

  • ps做网站页面美工网络营销成功案例ppt免费
  • 广西壮族自治区卫生健康委员会网站seochinaz查询
  • 清远做网站的公司引擎优化seo
  • 站长之家官网查询襄阳seo
  • 专业做域名的网站考研培训
  • 南昌网站建设博客软文推广怎么写
  • 广州外贸网站建设公司seo顾问服
  • 昆明有多少做网站的公司婚恋网站排名前十名
  • 哈尔滨住建委官方网站管理人员需要培训哪些课程
  • 宝鸡做网站公司电话互联网销售怎么做
  • 北京城乡建设委员会网站共有产权房百度seo排名优化如何
  • 网站开发常用的前端框架带佣金的旅游推广平台有哪些
  • axsure建设网站百度推广平台收费标准
  • 公司网站页面设计网页制作app手机版
  • 做自己的外贸网站怎样赚钱seo上首页排名
  • php网站开发教程培训淘宝代运营靠谱吗
  • 网站的轮播怎么做的seo排名如何
  • 网站群管理平台建设推广普通话黑板报
  • 国外教程 网站网页设计与制作软件
  • 怎么看一个网站哪公司做的ios aso优化工具
  • 上杭网站定制超级seo助手
  • 上海最新疫情数据seo优化总结
  • 重庆公司建站网站搜索引擎优化情况怎么写
  • 中国建设教育网官网是什么网站qq群推广软件
  • 域名怎么建设网站兰州网络推广公司哪家好
  • 汕头网站建设推广厂家营销型网站有哪些平台
  • 关注公众号阅读全文wordpressseo优化教程培训
  • 如何开发游戏重庆seo排名收费
  • 网页设计制作的流程seo代理
  • 仿制网站侵权吗武汉网站seo服务