| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2242 人关注过本帖
标题:设计一个在不带头结点的链表的第i个元素之前插入一个元素的算法。 求高手指 ...
只看楼主 加入收藏
rubio09
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-3-19
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
设计一个在不带头结点的链表的第i个元素之前插入一个元素的算法。 求高手指点
求高手指点
搜索更多相关主题的帖子: 设计 算法 元素 
2012-03-19 11:16
梁__
Rank: 2
等 级:论坛游民
帖 子:5
专家分:12
注 册:2012-3-19
收藏
得分:4 
我也在为这个问题而烦恼。。。
2012-03-19 22:31
C_戴忠意
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:575
专家分:1349
注 册:2011-10-21
收藏
得分:4 
好好看看数据结构

编程之路定要走完……
2012-03-20 15:27
爱德华
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:183
专家分:536
注 册:2011-5-29
收藏
得分:4 
自己多看看书吧  比较基础的东西  这个不会就别学c了

算法,数据结构,windows核心编程.
2012-03-20 18:31
hifine
Rank: 1
等 级:新手上路
帖 子:7
专家分:7
注 册:2011-9-30
收藏
得分:4 
看数据结构的书吧。。
2012-03-24 00:53
shuijiashui
Rank: 2
等 级:论坛游民
帖 子:43
专家分:85
注 册:2009-9-1
收藏
得分:4 
#include "stdio.h"
#include "stdlib.h"

typedef struct node
{
    int data;
    struct node *next;
    struct node *pre;
}Node;

Node *head=NULL;

Node* create()
{
    Node *p,*tail;
    p=(Node*)malloc(sizeof(Node));//申请一个节点
    scanf("%d",&p->data);
    head=p;
    head->pre=NULL;
    if(p->data==0)//若节点为0;则创建失败
    {
        free(p);
        head=NULL;
        head->pre=NULL;
        tail=NULL;
        return head;
    }
   
    while(p->data!=0)//头结点创建成功后,接着申请节点
    {
        tail=p;
        p=(Node*)malloc(sizeof(Node));
        scanf("%d",&p->data);
        if(p->data!=0)
        {
            p->pre=tail;
            tail->next=p;
        }
    }
    free(p);//节点为0,则尾节点的next指针为null
    tail->next=NULL;
    return head;
}

void insert(Node *head,int i)//插入
{
    for (Node *find=head;find;find=find->next)
    {
        if(i--==1)
        {
            Node *p=(Node*)malloc(sizeof(Node));
            scanf("%d",&p->data);
            if(find->pre)
            {
                find->pre->next=p;
                p->pre=find->pre;
                p->next=find;
                find->pre=p;
            }
            else
            {
                find->pre=p;
                p->next=find;
                ::head=p;
            
            }
            
            return;
        }
    }
   
    printf("超出下标\n");
}



int main()
{
    Node *p=create();
    Node *q=p;
    while(p)
    {
        printf("%d\n",p->data);
        p=p->next;
    }
    printf("------------------------------------------\n");
    p=q;
    insert(p,1);
    printf("------------------------------------------\n");
    while(head)
    {
        printf("%d\n",head->data);
        head=head->next;
    }
    return 0;
}
2012-03-26 00:55
快速回复:设计一个在不带头结点的链表的第i个元素之前插入一个元素的算法。 求 ...
数据加载中...
 
   



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

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