| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 593 人关注过本帖
标题:双链表问题
只看楼主 加入收藏
丢了幸福
Rank: 2
等 级:论坛游民
帖 子:44
专家分:10
注 册:2010-7-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
双链表问题
构造一个带头结点的双链表,实现前插,后插,删除一系列操作。要带头结点啊!谢谢!
搜索更多相关主题的帖子: 双链 
2010-08-14 16:46
lftp2020
Rank: 2
等 级:论坛游民
帖 子:27
专家分:81
注 册:2010-3-18
收藏
得分:10 
作业贴,还是放到C语言版吧,人多
2010-08-14 17:24
aizuoai123
Rank: 2
等 级:论坛游民
帖 子:44
专家分:36
注 册:2010-5-14
收藏
得分:10 
struct Lnode
{
    char data;
    Lnode *prior;
    Lnode *next;
};
void CreateList(Lnode * &head,char a[],int n)//尾插法创建链表
{
    Lnode *p,*s;
    int i=0;
    head=(Lnode *)malloc(sizeof(Lnode));
    head->next=NULL;
    head->prior=NULL;
    s=head;
    while(i<n)
    {
        p=(Lnode *)malloc(sizeof(Lnode));
        p->data=a[i];
        p->next=s->next;
        p->prior=s;
        s->next=p;
        s=p;
        i++;
    }
}

int ListInsert(Lnode *&head,int i,char e)//插入列表
{
    Lnode *p,*s;
    int k=0;
    p=head;
    while(k<i-1&&p!=NULL)
    {
        k++;
        p=p->next;
    }
    if(p==NULL)
        return 0;
    else
    {
        s=(Lnode *)malloc(sizeof(Lnode));
        s->data=e;
        s->next=p->next;
        if(p->next!=NULL)p->prior=s;
        s->prior=p;
        p->next=s;
        return 1;
    }
}



int ListDelete(Lnode *&head,int i,char &e)//删除列表
{
    Lnode *p=head,*s;
    int k=0;
    while(k<i-1&&p!=NULL)
    {
        j++;
        p=p->next;
    }
    if(p==NULL)
        return 0;
    else
    {
        s=p->next;
        if(s==NULL)
            return 0;
        e=s->data;
        p->next=s->next;
        if(p->next!=NULL)p->next->prior=p;
        free(s);
        return;
    }
}
2010-08-14 22:45
快速回复:双链表问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.062611 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved