c语言之simp _link
简单链表,还需完善!
#include <stdio.h>
#include <stdlib.h>
struct node
{
int num;
struct node * next;
};
typedef struct node Node;
typedef struct node * Link;
void create_link(Link * head)
{
*head = NULL;
}
void insert_node_head(Link * head,Link new_node)
{
new_node->next = *head;
*head = new_node;
}
void display_node(Link head)
{
Link tmp;
tmp = head;
while(tmp != NULL)
{
printf("num = %d\n",tmp->num);
tmp = tmp->next;
}
}
void is_malloc_ok(Link new_node)
{
if(new_node == NULL)
{
printf("malloc error!\n");
exit(-1);
}
}
void create_newnode(Link * new_node)
{
*new_node = (Link) malloc(sizeof(Node));
is_malloc_ok(*new_node);
}
void insert_node_tail(Link *head,Link new_node)
{
Link tmp;
tmp = *head;
if(*head == NULL)
{
new_node->next = *head;
*head = new_node;
}
else
{
while(tmp->next != NULL)
{
tmp = tmp->next;
}
tmp->next = new_node;
new_node->next = NULL;
}
}
void insert_node_mid(Link *head,Link new_node,int num)
{
Link tmp;
tmp = *head;
if(NULL == *head)
{
printf("link is empty!\n");
return;
}
else
{
while(tmp->num != num && tmp->next != NULL)
{
tmp = tmp->next;
}
if(tmp->num == num)
{
new_node->next = tmp->next;
tmp->next = new_node;
}
else
{
printf("no such node!\n");
}
}
}
void delete_node(Link *head,int num)
{
Link tmp;
Link p;
tmp = p = *head;
if(NULL == *head)
{
printf("link is empty!\n");
return;
}
while(tmp->num != num && tmp->next != NULL)
{
p = tmp;
tmp = tmp->next;
}
if(tmp->num == num)
{
if(tmp == *head)
{
*head = tmp->next;
free(tmp);
}
else
{
p->next = tmp->next;
free(tmp);
}
}
else
{
printf("no such node!\n");
}
}
int main()
{
Link head = NULL;
Link new_node = NULL;
int i;
int num;
create_link(&head);
for(i = 0; i < 10;i++)
{
create_newnode(&new_node);
new_node->num = i;
//insert_node_head(&head,new_node);
insert_node_tail(&head,new_node);
}
printf("please input a num!\n");
scanf("%d",&num);
// create_newnode(&new_node);
// new_node->num = num;
// insert_node_mid(&head,new_node,10);
delete_node(&head,num);
display_node(head);
return 0;
}
c语言之simp _link相关推荐
- CSDN ARIMA R语言_R语言时间序列:ARIMA / GARCH模型的交易策略在外汇市场预测应用...
原文链接: http://tecdat.cn/?p=17622tecdat.cn 最近,我们继续对时间序列建模进行探索,研究时间序列模型的自回归和条件异方差族.我们想了解自回归移动平均值(ARIMA ...
- matlab sskf,[转载]fortran语言常用函数
3. 编程语言结构 abort 中止计算或循环 break 终止最内循环 case 同 select 一起使用 continue 将控制转交给外层的 for或 while循环 else 同 if一起使 ...
- 操作系统形式化验证实践教程(11) - 结构化证明语言Isar(转载)
操作系统形式化验证实践教程(11) - 结构化证明语言Isar 结构化证明语言Isar基本语法 apply方法和by方法虽然可以完成功能,但是看起来更像是命令式语言.使用Isar语言,还可以写得更加形 ...
- 操作系统形式化验证实践教程(11) - 结构化证明语言Isar
操作系统形式化验证实践教程(11) - 结构化证明语言Isar 结构化证明语言Isar基本语法 apply方法和by方法虽然可以完成功能,但是看起来更像是命令式语言.使用Isar语言,还可以写得更加形 ...
- c语言实验与课程设计 李开,华中科技大学C语言课程设计实验报告及源代码.doc...
华中科技大学C语言课程设计实验报告及源代码 课 程 设 计 报 告 题目: 航班时刻表信息查询系统 课程名称: C语言程序设计 专业班级: 学 号: 姓 名: 指导教师: 报告日期: 计算机科学与技术 ...
- Newspaper 一个能下载 38 种语言新闻文章的 Python 模块
这是「进击的Coder」的第 485 篇技术分享 作者:Ckend 来源:Python 实用宝典 " 阅读本文大概需要 7 分钟. " Newspaper 是一个很棒的 pytho ...
- 【零基础学C语言】知识总结八:struct 结构体与 union 共用体
struct 结构体 struct即结构体,C程序中经常需要用相关的不同类型的数据来描述一个数据对象.例如,描述学生的综合信息时,需要使用学生的学号.姓名.性别等不同类型的数据时,像这种数据类型总是在 ...
- Go语言的错误异常处理机制及其应用
一.背景 在日常编写golang程序或阅读别人的golang代码时,我们总会看到如下的一堆代码块: xx, err = func(xx) if err != nil {//do sth. to tac ...
- Go 知识点(19)— Go 语言中的野指针
野指针是一种指向内存位置是不可知的指针,一般是由于指针变量在声明时没有初始化所导致的.在 Go语言中,布尔类型的零值为 false,数值类型的零值为 0,字符串类型的零值为 "", ...
最新文章
- 栈和队列互相实现,一文弄懂它们的关系
- 道路交通安全违法行为图像取证技术规范_海康移动取证方案中的设备介绍
- 小白学docker(1)---docker安装
- lvds传输距离标准_如何正确看待POE交换机150米、长距离250米传输
- 博科SAN交换机zone配置(华为SNS系列交换机为例OEM博科)
- OLAP-druid-大数据Week13-DAY2-druid
- js基础-20-js对象赋值时的key值问题
- 用Adobe Illustrator将位图转为矢量图并上色
- Epicor 客制化 - 常用对象
- 计算机专业未来规划作文英文,以“未来的职业”写一篇英语作文
- 【hdu 6438】Buy and Resell
- 猿创征文|后端开发工程师提升开发效率神器推荐
- 【LOJ573】「LibreOJ NOI Round #2」单枪匹马
- micro、M3O微服务系列(三)
- 标准化拉普拉斯矩阵特征值范围为什么小于等于2?(证明)
- Pandas基础:文件读取与写入、Series和Dataframe、常用基本函数、排序
- Linux下的有名管道---使用两个管道实现两个进程之间的通信(手机模式)
- 2006年中国动漫行业预测及投资分析报告
- NLP-D62-nlp比赛D31刷题D15
- dsoframer控件学习小结(打开WORD,EXCEL等文件)
热门文章
- r语言中popsd和sd的区别_R语言中回归和分类模型选择的性能指标
- 浅谈 RISC-V 软件开发生态之 IDE
- 蓝牙配对码配置错误_“看yellow 的时候,连错了蓝牙耳机,结果....”哈哈哈哈我笑到村里通网!!...
- 相同元素分配到相同空间问题(放鸡蛋问题)详解
- knowledge-based systems 终于返回了意见——小修
- CodeM2018美团 初赛A轮 题目二 下棋
- GPRS/GPS模块组学习——服务器搭建之云服务器 ECS
- JavaScript 控制台输出彩色字
- 前端参数用MD5加密
- 提取16线激光雷达扫描线