| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 520 人关注过本帖
标题:链表插入问题
只看楼主 加入收藏
Nekomimi
Rank: 2
等 级:论坛游民
帖 子:80
专家分:15
注 册:2006-11-21
结帖率:100%
收藏
 问题点数:0 回复次数:2 
链表插入问题
想在第一个位置插入(i==1)时,程序就运行错误,不知道哪儿错了
大哥大姐们帮我看看。。谢了。。
#include <stdio.h>
#define NULL 0
struct insert{
    char c;
    struct insert *next;
};
int main(int argc, char *argv[])
{
    int i,j=1;
    struct insert a1,a2,a3,a4,a5,a6,a7,*head,*p,e;
    a1.c='a';a2.c='b';a3.c='c';a4.c='d';a5.c='e';a6.c='f';a7.c='g';
    head=&a1;
    a1.next=&a2;a2.next=&a3;a3.next=&a4;a4.next=&a5;
    a5.next=&a6;a6.next=&a7;a7.next=NULL;
    p=head;
    printf("insert position and word:");
    scanf("%d %c",&i,&e.c);

    while(p&&j<i-1){
        p=p->next;
        j++;
    }
    if(!p||j>i){
        printf("ERROR!!");
    }else if(i==1){
        e.next=p->c;
        head=&e;
        &e=head;
        while(p){
            printf("%c",p->c);
            p=p->next;
        }
    }else{
        e.next=p->next;
        p->next=&e;
        p=head;
        while(p){
            printf("%c",p->c);
            p=p->next;
        }
    }
    return 0;
}


[ 本帖最后由 Nekomimi 于 2010-1-3 23:32 编辑 ]
搜索更多相关主题的帖子: 链表 
2010-01-03 23:30
xu362726904
Rank: 6Rank: 6
等 级:侠之大者
帖 子:160
专家分:471
注 册:2009-6-18
收藏
得分:0 
if(i==1){
        e.next=head;//把e当头,他的下一个指向的是以前的头结点
        head=&e;
      p=head;//head的值发生改变,需要重新赋予给p
   while(p){
            printf("%c",p->c);
            p=p->next;
        }
}
2010-01-04 08:45
Nekomimi
Rank: 2
等 级:论坛游民
帖 子:80
专家分:15
注 册:2006-11-21
收藏
得分:0 
谢谢老大,问题解决了
2010-01-04 19:50
快速回复:链表插入问题
数据加载中...
 
   



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

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