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

多文件编程实现链表创建,插入,输出(上)

linklist.c

#include "linklist.h"
//创建空的链表,为头结点在堆区分配空间
linklist_t *creat_empty_linklist()
{linklist_t *head = NULL;head = (linklist_t *) malloc(sizeof(linknode_t));if(NULL == head){printf("malloc is fail!\n");return NULL;}memset(head,0,sizeof(linklist_t));//head->next = NULL;//head->data = 0;return head;
}
//头插法:每次都在头结点后插入数据
//特点:插入的顺序和输出的顺序是相反的void insert_head_linklist(linklist_t *head,datatype_t data)
{//为结点在堆区申请空间linklist_t *temp = (linklist_t *)malloc(sizeof(linknode_t));if(NULL == temp){printf("malloc is fail!\n");return ;}//插入数据temp->data = data;//连接结点temp->next = head->next;head->next = temp;return ;
}//输出链表的内容
void print_data_linklist(linknode_t *head)
{linklist_t *p = head;while(p->next != NULL){printf("%d ",p->next->data);p = p->next;}return ;
}

linklist.h

#include <stdio.h>
#include <string.h>
#include <stdlib.h>typedef int dartatype_t;typedef struct node
{datatype_t data;//数据域保存有效数据struct node *next;//指针域保存下一个结点的地址
}linknode_t;extern void print_data_linklist(linknode_t *head);
extern void insert_head_linklist(linklist_t *head,datatype_t data);
extern linklist_t *creat_empty_linklist();#endif

main.c

#include "linklist.h"int main()
{linklist_t *head = NULL;datatype_t data;int n;head = creat_empty_linklist();printf("please input you want insert data number: ");scanf("%d",&n);printf("please input %d data : ",n);for(i = 0;i < n;i++){scanf("%d",&data);insert_head_list(head,data);}print_data_linklist(head);retutn 0;
}

  运行上面的所有文件可以有下面结果:
在这里插入图片描述


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

相关文章:

  • 期望极大算法(Expectation Maximization Algorithm,EM)
  • C++ STL之set和unordered_set
  • STM32点亮第一个LED
  • Redis 入门 - C#|.NET Core客户端库六种选择
  • 捕获和处理异常非常重要
  • STM32 + W5500 实现HTTPS !
  • Python习题 177:设计银行账户类并实现存取款功能
  • 基于ssm+vue+uniapp的食堂线上预约点餐系统小程序
  • QT QSystemTrayIcon创建系统托盘区图标
  • 2024年增强现实(AR)的现状
  • 每日一题:移动零
  • gdb调试64位程序错误
  • 每日OJ_牛客_合唱团(打家劫舍dp)
  • 【佳学基因检测】在EXCEL中,如何获取A列的第9-29个字符,将其填入另一列中
  • 【MySQL】表的操作【有关表结构的操作】【创建、查看、删除、修改表结构】
  • 【AI赋能医学】基于深度学习和HRV特征的多类别心电图分类
  • 0x07 Nginx越界读取缓存漏洞 CVE-2017-7529 复现
  • AVL树的模拟实现(插入,验证)
  • 计算机三级网络技术总结 第十一章网络管理技术
  • 「数学::质数」埃氏筛|欧拉筛(埃拉托斯特尼筛法|线性筛法)/ LeetCode 204(C++)