Chinaunix首页 | 论坛 | 博客
  • 博客访问: 342633
  • 博文数量: 72
  • 博客积分: 2130
  • 博客等级: 大尉
  • 技术积分: 857
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-05 16:10
文章分类

全部博文(72)

文章存档

2010年(5)

2009年(14)

2008年(53)

分类: C/C++

2008-10-06 12:29:29

typedef struct dnode
{
        int data;
        struct dnode *prior;
        struct dnode *next;
}DNode;

/*在所指定位置之前插入*/
void before_insert(DNode *head, int position, int value)
{
        DNode *p = head;
        DNode *q = NULL;
        int i = 0;
        while(p && i++ < position - 1)
                p = p->next;
        if((q = (DNode *)malloc(sizeof(DNode)))==NULL)
        {
                printf("分配内存失败\n");
                exit(0);
        }
        q->data = value;
        q->next = p->next;
        p->next = q;
        p->next->prior = q;
        q->prior = p;
}

/*在所指定位置之后插入*/
void behind_insert(DNode *head, int position, int value)
{
        DNode *p = head;
        DNode *q = NULL;
        int i = 0;
        while(p && i++ < position)
                p = p->next;
        if((q = (DNode *)malloc(sizeof(DNode)))==NULL)
        {
                printf("分配内存失败\n");
                exit(0);
        }
        q->data = value;
        q->next = p->next;
        p->next = q;
        p->next->prior = q;
        q->prior = p;
}



阅读(946) | 评论(1) | 转发(0) |
0

上一篇:双链表的打印

下一篇:双链表的删除

给主人留下些什么吧!~~

chinaunix网友2008-12-03 15:28:32

我是学 C 语言的!看到你写的还不错!加油!呵呵.....