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语言随笔小算法:创建双向链表相关推荐

  1. C语言随笔小算法:单向链表

    C语言随笔小算法:单向链表 参考链接: 代码参考:https://blog.csdn.net/go_sann/article/details/80508284 原理参考:https://blog.cs ...

  2. C语言随笔小算法:单项链表如何实现队列

    C语言随笔小算法:单项链表如何实现队列 参考链接: https://blog.csdn.net/u012895183/article/details/81914767 代码:

  3. C语言随笔小算法:char字节流与结构体变量相互转换

    C语言随笔小算法:char字节流与结构体变量相互转换 代码: /* **数据域 */ typedef struct {kal_uint8 bt_dpacket_data_total_num; //(可 ...

  4. C语言随笔小算法:取出一个任意整数的每一位数值

    C语言随笔小算法:取出一个任意整数的每一位数值 代码: #include "stdlib.h" #include "stdio.h"//将val的各位取出来 i ...

  5. c语言一些算法解题技巧,c语言常见小算法的解题思路.doc

    c语言常见小算法的解题思路 判定某一年是否是闰年 闰年时间:四年一闰,百年不闰,四百年再闰.,其中 大写字母转小写字母 大写字母+32 = 小写字母 A = 65 a = 97 输入一个华氏温度,要求 ...

  6. 随笔小算法:从一个数据根据CRC校验出特定包

    #define REC_BUFFSIZE 256 #define RECV_FRAME_MIN_LEN 5 //MODBUS响应帧的最小长度,异常反馈帧只有5B #define RECV_FRAME_ ...

  7. c语言有啥简单的小程序,c语言-简单小程序-简单算法

    <c语言-简单小程序-简单算法>由会员分享,可在线阅读,更多相关<c语言-简单小程序-简单算法(19页珍藏版)>请在人人文库网上搜索. 1.以下小程序都在 TC2.0 中运行通 ...

  8. C语言小算法:ACSII码(多字节)和Unicode(宽字节)互转

    C语言小算法:ACSII码(多字节)和Unicode(宽字节)互转 代码: #include <Windows.h> #include <stdio.h> #include & ...

  9. Go语言-数据结构与算法

    go语言之专业数据结构与算法 3.golang实现数组结构 code\ArrayList\ArrayList.go package ArrayListimport ("errors" ...

最新文章

  1. python 控件显示时间_设置tkinter标签以显示倒计时时间
  2. 用命令行执行ROBOT FRAMEWORK
  3. android搭建开发环境
  4. Elasticsearch学习笔记1
  5. 最长递增子序列的个数Python解法
  6. 最长递增子序列Python解法
  7. openwrt x86 登录不上_求助,关于OpenWRT外接硬盘不识别的问题
  8. 基于SSM的校园帮系统
  9. mysql链接 及备份
  10. sqoop导出solr数据_用Sqoop把数据从HDFS导入到MYSQL
  11. C语言的32个关键字和9种控制语句
  12. 图像效果的一些专业测试工具和指标:
  13. 简历推荐_12位AI产品经理
  14. 如何自己更改证件照底色?如何生成蓝底照片电子版?
  15. 《紫川》之远东战火 十一卷
  16. 亲测win10安装mac虚拟机+网络配置完整过程
  17. 技术管理进阶——团队合并、解散怎么办?
  18. Olly's Shadow
  19. Ubuntu20中使用AirSim--亲测可用
  20. WPS Excel数据表格处理分析技巧

热门文章

  1. office系统构架
  2. 使用全备+binlog日志恢复数据库
  3. [Python]小甲鱼Python视频第037课(类和对象:面向对象编程 )课后题及参考解答
  4. 《构建之法》 读书笔记(6)
  5. 通过CSS调整firefox的界面。
  6. 设计模式(七): 通过转接头来观察适配器模式(Adapter Pattern)
  7. android:图片裁剪
  8. c#开发Mongo笔记第三篇
  9. php常用函数字符串操作回顾
  10. H - A Shooting Game