双链表
来源:互联网 发布:qq游戏大厅mac版官方 编辑:程序博客网 时间:2024/04/30 06:31
双链表用的较少,就不写出程序了,简单的说一下插入删除操作。
typedef struct DNode{
ElemType data;
struct DNode *prior,*next;
}DNode,*DLinkList;
关于插入操作:
例如:结点s要插入到p的后面
先链接s与p后面的一串
s->next=p->next;
s->next->prior=p;
再链接p与s之间的链
p->next=s;
s->prior=p;
上面的四个操作不能胡乱的换位置,其根本原因是在改变指针指向
的先后顺序是有要求的,如果先进行了不当的改变会导致以后找不到刚才
的指针了。
对于这种情况,建议应该先找到p的后继指针
q=p->next;//q用来保存p的原来的后继,这样在后面指针操作不管怎么链接,这个p和q始终指着必需的元素
s->next=q;
s=q->prior
p->next=s;
s->prior=p;
这样这四个操作就可以轮换了,而且思路简单一点
关于删除操作:
例如:删除p结点后面的结点,容易一点
q=p->next;
p->next=q->next;
q->next->prior=p;
free(q);
- 双链表
- 双链表
- 双链表
- 双链表
- 双链表
- 双链表
- 双链表
- 双链表
- 双链表
- 双链表
- 双链表
- 双链表
- 双链表
- 双链表
- 双链表
- 双链表
- 双链表
- 双链表
- java中的类型转换
- iOS Code Signing: 解惑
- 详解Xcode 4发布程序图文并茂教程
- 一个游戏程序员的学习资源
- HTML 端口POST测试
- 双链表
- Chrome大战Firefox,开源的胜利
- 飞速浏览器3.0.0 webview 练手项目.
- startActivityForResult( )与startActivity( )的不同之处
- unity3d事件函数整理,事件,回调函数,消息处理
- 效果超酷的textarea的输入字数限制及提示
- 修改DOS窗口编码格式
- 学习c++及c++用途
- 直接IO路径分析