C简单实现双向链表
<pre name="code" class="cpp">//链表结构
typedef struct DulNode
{
DataType data; //数据
struct DulNode *prior; //指向前一个节点的指针
struct DulNode *next; //指向后一个节点的指针
}DulNode; //双向链表初始化
void InitList(DulNode **h)
{
(*h) = NULL;
} //尾插
void PushBack(DulNode *h,DataType x)
{
DulNode *p;
DulNode *q = h;
p = (DulNode*)malloc(sizeof(DulNode));
if(p == NULL)
{
printf("Memory is false");
return;
}
p->data = x;
q->next = p;
p->prior = q;
p->next = NULL;
q = p;
} //双向连表的插入
//void PushBack(DulLinkList h,int pos,DataType x)
//{
// DulLinkList p = h->next,q;
// int i = 0;
// while(p != h && i < pos-1)
// {
// p = p->next;
// i++;
// }
// if( p == h && i > pos - 1)
// {
// printf("插入位置不合法\n");
// return;
// }
// q = (DulLinkList)malloc(sizeof(DulNode));
// if(q == NULL)
// {
// printf("Memory is false");
// return;
// }
// q->data = x;
// q->prior = p->prior;
// p->prior->next = q;
// q->next = p;
// p->prior = q;
//} //打印
void Print()
{
DulNode *h;
DulNode *p;
InitList(&h); p = h->next;
while(p)
{
printf("%d->",p->data);
p = p->next;
}
printf("NULL");
}
C简单实现双向链表的更多相关文章
- 一个简单的双向链表(C++实现)
直接上代码,亲测有用. #ifndef __DLINK_H__ #define __DLINK_H__ /* [phead] -> [index0] -> [index1] -> [ ...
- Python链表的实现与使用(单向链表与双向链表)
参考[易百教程]用Python实现链表及其功能 """ python链表的基本操作:节点.链表.增删改查 """ import sys cl ...
- Java-链表(单向链表、双向链表)
Java-链表 1.什么是链表? 2.链表的特点是什么? 3.链表的实现原理? 4.如何自己写出一个链表? 1.什么是链表? 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过 ...
- [Python学习笔记-008] 使用双向链表去掉重复的文本行
用Python处理文本文件是极方便的,当文本文件中有较多的重复的行的时候,将那些重复的行数去掉并打印诸如"...<repeats X times>..."有助于更好的浏 ...
- C#数据结构-双向链表
链表的概念以及链表与数组的差异不做过多的叙述,相信大家都耳熟能详,这里以c#语言实现简单的双向链表,作为备用,记录下~ public class Node<T> { private Nod ...
- 内核源码分析之进程地址空间(基于3.16-rc4)
所谓进程的地址空间,指的就是进程的虚拟地址空间.当创建一个进程时,内核会为该进程分配一个线性的地址空间(虚拟地址空间),有了虚拟地址空间后,内核就可以通过页表将进程的物理地址地址空间映射到其虚拟地址空 ...
- Tsinghua dsa mooc pa1
第一题Range 关键:二分查找,查找不大于一个数的最大下标. #include <cstdlib> #include <cstdio> 4 int compare (cons ...
- 用js来实现那些数据结构08(链表02-双向链表)
其实无论在任何语言中,一种数据结构往往会有很多的延伸和变种以应对不同场景的需要.其实前面我们所学过的栈和队列也是可以用链表来实现的.有兴趣的小伙伴可以自己尝试着去实现以下. 有点跑题了...,我们还是 ...
- 集合之LinkedList源码分析
转载请注明出处:http://www.cnblogs.com/qm-article/p/8903893.html 一.介绍 在介绍该源码之前,先来了解一下链表,接触过数据结构的都知道,有种结构叫链表, ...
随机推荐
- 【USACO4.2】草地排水Drainage Ditches(最大流)
题目背景 在农夫约翰的农场上,每逢下雨,贝茜最喜欢的三叶草地就积聚了一潭水.这意味着草地被水淹没了,并且小草要继续生长还要花相当长一段时间.因此,农夫约翰修建了一套排水系统来使贝茜的草地免除被大水淹没 ...
- linux升级python3.6相关命令
sudo apt-get install python3.6 sudo update-alternatives --install /usr/bin/python python /usr/bin/py ...
- 【Webpack的使用指南 02】Webpack的常用解决方案
说是解决方案实际上更像是webpack的插件索引. 写这一篇的目的是为了形成一个所以,将来要用时直接来查找即可. 索引目录 1.自动构建HTML,可压缩空格,可给引用的js加版本号或随机数:html- ...
- Bounding-box 回归
R-CNN系列均训练了Bounding-box回归器来对窗口进行校正,其目标是学习一种转换关系将预测得到的窗口P映射为真实窗口G(Ground truth). 变换方式 可以通过简单的仿射变换以及指数 ...
- ValueError: Cannot feed value of shape ..
这里x_,y_是两个数字,当我运行时 with tf.Session() as sess: #定义session对象生成器 for step in range(201) : sess.run(trai ...
- Opencv读取并获取视频属性
opencv中通过VideoCaptrue类对视频进行读取操作以及调用摄像头.常用的操作如下: 1.常用构造函数 1.VideoCapture类的构造函数:C++: VideoCapture::Vid ...
- Spring MVC注解式开发
MVC注解式开发即处理器基于注解的类开发, 对于每一个定义的处理器, 无需在xml中注册. 只需在代码中通过对类与方法的注解, 即可完成注册. 定义处理器 @Controller: 当前类为处理器 @ ...
- 关于Cesium中的常用坐标系及说明
Cesium是一个基于JavaScript的开源框架,可用于在浏览器中绘制3D的地球,并在其上绘制地图(支持多种格式的瓦片服务),该框架不需要任何插件支持,但是浏览器必须支持WebGL. Cesium ...
- 面试题中遇到的算法与js技巧
近一周在忙着面试,本月第一次更博,甚是想念. 基本上大公司都会要求一些算法或者数据结构类的东西,这方面自己还不是很精通,只能一步一个脚印来积累了. 1.查询字符串获取对象数据,可自行根据需求选择格式, ...
- springboot集成swagger2
介绍: Swagger是全球最大的OpenAPI规范(OAS)API开发工具框架,支持从设计和文档到测试和部署的整个API生命周期的开发.(摘自Swagger官网)Swagger说白了就 ...