双向链表的建立和反序
来源:互联网 发布:tplink网络设置 编辑:程序博客网 时间:2024/04/30 21:09
链表以前一直没有自己手写过,发现程序这个东西,一定的自己动手练习,才会掌握的比较牢固。所以今天就自己动手写了双向链表的建立和反序。记录一下
#include <stdio.h>
#include <malloc.h>
typedef struct _node
{
int data;
struct _node *pre;
struct _node *next;
}Node,*pNode;
pNode head = NULL;
void creatHead()
{
int temp;
pNode pnode;
if(head == NULL)
{
pnode = (Node *)malloc(sizeof(Node));
pnode->data = 100;
pnode->pre = NULL;
pnode->next = NULL;
head = pnode;
}
for(temp = 0;temp < 5;temp++)
{
pNode tempnode = (Node *)malloc(sizeof(Node));
tempnode->data = temp;
tempnode->pre = pnode;
tempnode->next = NULL;
pnode->next = tempnode;
pnode = tempnode;
}
}
void fanzhuan(pNode headnode)
{
pNode prenode = NULL;
pNode pnext = NULL;
pNode pnode = headnode;
while(pnode)
{
pnext = pnode->next;
if(pnext == NULL)
{
head = pnode;
pnode->pre = NULL;
}
pnode->next = prenode;
pnode->pre = pnext;
prenode = pnode;
pnode = pnext;
}
}
void printnode(pNode headnode)
{
pNode pnode;
pnode = headnode;
while(pnode)
{
printf("node data=%d\n",pnode->data);
pnode = pnode->next;
}
}
void main()
{
creatHead();
printnode(head);
fanzhuan(head);
printnode(head);
}
- 双向链表的建立和反序
- 双向链表的建立和打印
- 双向链表的建立
- 双向链表的建立
- 双向链表的建立
- 双向链表的建立
- 双向链表的建立
- 双向链表的建立
- 双向链表的建立
- 双向链表建立、插入和删除
- 建立双向链表
- 双向链表 建立
- 双向链表的建立以及输出
- 双向链表的建立插入删除
- 关于双向链表的建立
- 双向循环链表的建立
- 双向循环链表的建立
- 双向链表的建立与输出
- 资金管理要领和交易策略举要
- /dev/mem
- 操作分区表对global和local索引的影响 (转)
- In App Purchase的介绍
- 关于画图那些简单的事(graphics)
- 双向链表的建立和反序
- JS简单应用——身份证号码信息截取
- 关于过滤文件、过滤文件夹、过滤路径的几个想法
- log4j配置详解
- Uva 11054 洒交易(扫描法)
- Linux 修改 网卡名称 小记
- 【笔记】慎用Java递归调用
- 如何配置NetBeans启动后语言为英文
- JS读取文本文件