2688|0

6

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

最近对双向链表的研究(比较好的插入双向链表的程序) [复制链接]

#include<stdio.h>
#include<stdlib.h>
#define FALSE   0
#define TRUE    1
typedef struct NODE
{
 struct NODE *fwd;
 struct NODE *bwd;
 int        value;
}Node;
//巧妙地插入函数
int dll_insert(Node *rootp, int value )
{
 register Node *this;
 register Node *next;
 register Node *newnode;
 for(this = rootp;(next = this->fwd)!=NULL;this=next)
 {
  if(next->value == value)
   return 0;
  if(next->value > value)
   break;
  
 }
 newnode = (Node *)malloc(sizeof(Node));
 if(newnode == NULL)
  return -1;
 newnode->value = value;
 newnode->fwd = next;
 this->fwd = newnode;
 //分别判断两个指针的位置
 
 if( this != rootp )
  newnode->bwd = this;   //正常插入链表
 else
  newnode->bwd = NULL;   //newnode作为根节点
 if( next != NULL )
  next->bwd = newnode;   //正常插入链表
 else
  rootp->bwd = newnode;  //newnode做为根节点,newnode->fwd=rootp;
 return 1;

}
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

开源项目 更多>>
    随便看看
    查找数据手册?

    EEWorld Datasheet 技术支持

    相关文章 更多>>
    关闭
    站长推荐上一条 1/10 下一条

     
    EEWorld订阅号

     
    EEWorld服务号

     
    汽车开发圈

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表