C语言随笔小算法:创建双向链表
C语言随笔小算法:创建双向链表
双向链表两个指针域!head定住,tail移动!
代码:
#include "stdlib.h"
#include "stdio.h"
#include "malloc.h"// 创建双向链表typedef struct STUDENT
{int age;int score[3];char *name;int order;
} student, *_pstudent;/*
**定义数据域
*/
typedef struct NODE
{struct STUDENT element; //数据类容struct NODE *pre; //注意,只能使用节点指针类型struct NODE*struct NODE *next; //注意,只能使用节点指针类型struct NODE*
} node, *_pnode;/******************************************************************************* Function - Tracker_Get_IMEI_Req** Purpose - 创建一个num个节点的双向链表** Description -** modification history* ----------------------------------------* v1.0 , 2011-11-02, ysheng written* ----------------------------------------******************************************************************************/
_pnode initCreate(int num);/******************************************************************************* Function - Tracker_Get_IMEI_Req** Purpose - 主函数入口** Description -** modification history* ----------------------------------------* v1.0 , 2011-11-02, ysheng written* ----------------------------------------******************************************************************************//******************************************************************************* Function - Tracker_Get_IMEI_Req** Purpose - 创建一个num个节点的单项链表** Description -** modification history* ----------------------------------------* v1.0 , 2011-11-02, ysheng written* ----------------------------------------******************************************************************************/
_pnode initCreate(int num)
{struct NODE *head = NULL; //头节点指针struct NODE *normal_node = NULL; //普通节点指针struct NODE *tail = NULL; //尾结点指针int i = 1;/*创建链表的思想就是head作为定点,tail作为动点*/for(i = 1; i < num + 1; i++){normal_node = (node *)malloc(sizeof(node));if(head == NULL){head = tail = normal_node;}normal_node->element.order = i;printf("initCreate()-->>创建%d个节点!\n", i);tail->next = normal_node; //将新创的节点的地址放到前一个节点的next变量里normal_node->pre = tail; //新创建的节点的pre指针指向前一个节点tail = normal_node; //移动tail指针至新创建的节点}tail->next = NULL; //最后一个节点的指针域存放head头指针的指针域,形成双向链表printf("initCreate()-->>创建双向链表完成!\n");return head;
}// -->入队/************************7 |6 |5 |4 |3 |2 |1 | 0 ************************/// -->出队void main(void)
{_pnode head = initCreate(6);printf("head地址=%p\n",head);printf("head->next->pre地址=%p\n",head->next->pre);
}
C语言随笔小算法:创建双向链表相关推荐
- C语言随笔小算法:单向链表
C语言随笔小算法:单向链表 参考链接: 代码参考:https://blog.csdn.net/go_sann/article/details/80508284 原理参考:https://blog.cs ...
- C语言随笔小算法:单项链表如何实现队列
C语言随笔小算法:单项链表如何实现队列 参考链接: https://blog.csdn.net/u012895183/article/details/81914767 代码:
- C语言随笔小算法:char字节流与结构体变量相互转换
C语言随笔小算法:char字节流与结构体变量相互转换 代码: /* **数据域 */ typedef struct {kal_uint8 bt_dpacket_data_total_num; //(可 ...
- C语言随笔小算法:取出一个任意整数的每一位数值
C语言随笔小算法:取出一个任意整数的每一位数值 代码: #include "stdlib.h" #include "stdio.h"//将val的各位取出来 i ...
- c语言一些算法解题技巧,c语言常见小算法的解题思路.doc
c语言常见小算法的解题思路 判定某一年是否是闰年 闰年时间:四年一闰,百年不闰,四百年再闰.,其中 大写字母转小写字母 大写字母+32 = 小写字母 A = 65 a = 97 输入一个华氏温度,要求 ...
- 随笔小算法:从一个数据根据CRC校验出特定包
#define REC_BUFFSIZE 256 #define RECV_FRAME_MIN_LEN 5 //MODBUS响应帧的最小长度,异常反馈帧只有5B #define RECV_FRAME_ ...
- c语言有啥简单的小程序,c语言-简单小程序-简单算法
<c语言-简单小程序-简单算法>由会员分享,可在线阅读,更多相关<c语言-简单小程序-简单算法(19页珍藏版)>请在人人文库网上搜索. 1.以下小程序都在 TC2.0 中运行通 ...
- C语言小算法:ACSII码(多字节)和Unicode(宽字节)互转
C语言小算法:ACSII码(多字节)和Unicode(宽字节)互转 代码: #include <Windows.h> #include <stdio.h> #include & ...
- Go语言-数据结构与算法
go语言之专业数据结构与算法 3.golang实现数组结构 code\ArrayList\ArrayList.go package ArrayListimport ("errors" ...
最新文章
- python 控件显示时间_设置tkinter标签以显示倒计时时间
- 用命令行执行ROBOT FRAMEWORK
- android搭建开发环境
- Elasticsearch学习笔记1
- 最长递增子序列的个数Python解法
- 最长递增子序列Python解法
- openwrt x86 登录不上_求助,关于OpenWRT外接硬盘不识别的问题
- 基于SSM的校园帮系统
- mysql链接 及备份
- sqoop导出solr数据_用Sqoop把数据从HDFS导入到MYSQL
- C语言的32个关键字和9种控制语句
- 图像效果的一些专业测试工具和指标:
- 简历推荐_12位AI产品经理
- 如何自己更改证件照底色?如何生成蓝底照片电子版?
- 《紫川》之远东战火 十一卷
- 亲测win10安装mac虚拟机+网络配置完整过程
- 技术管理进阶——团队合并、解散怎么办?
- Olly's Shadow
- Ubuntu20中使用AirSim--亲测可用
- WPS Excel数据表格处理分析技巧