| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 257 人关注过本帖
标题:为什么这个链表插入的程序插入数据后没输出
只看楼主 加入收藏
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
结帖率:58.18%
收藏
已结贴  问题点数:20 回复次数:2 
为什么这个链表插入的程序插入数据后没输出
今天写下链表插入程序,竟然无法运行了,太水了
输入数据 3
1 5 6
4
结果只能输出未插入时的数据

程序代码:
#include <stdio.h>
#include <stdlib.h>

typedef struct node ListNode ;
typedef struct node* PtrList ;

struct node
{
    int data ;
    struct node* next ;
} ;

PtrList CreateList( int N )
{
    int i ;
    int Data ;
    PtrList head ;
    PtrList PtrCurrent , PtrPrevious ;

    //建立一个表头为空结点的链表
    //链表的初始化
   
    PtrCurrent = ( PtrList )malloc( sizeof(ListNode) ) ;
    PtrCurrent->next = NULL ;
    head = PtrCurrent ;
    
    for( i=0 ; i<N ; i++ )
    {
        scanf("%d" , &Data) ;
        PtrPrevious = PtrCurrent ;

        PtrCurrent = ( PtrList )malloc( sizeof(ListNode) ) ;
        PtrCurrent->data = Data ;
        PtrPrevious->next = PtrCurrent ;
        PtrCurrent->next = NULL ;
    }
    return head ;
}


void  InsertList( PtrList List )
{
    int Data ;
    PtrList PrePosition ; //插入位置的前一个位置
    PtrList InsertNode ;

    scanf("%d" , &Data ) ;
    InsertNode = ( PtrList )malloc(sizeof(ListNode) ) ;
    InsertNode->data = Data ;
    InsertNode->next = NULL ;
    
    PrePosition = List ;

    while((InsertNode->data) > (PrePosition->next->data) && PrePosition->next!=NULL )
    {
        PrePosition = PrePosition->next ;
    }

    InsertNode->next = PrePosition->next;
    PrePosition = InsertNode ;
    
}


void PrintfList( PtrList head )
{
    PtrList p ;
    p = head->next ;

    while( p )
    {
        printf( "%d " , p->data ) ;
        p=p->next ;
    }
    printf("\n") ;
}


int main()
{
    int N ;
    PtrList List ;

    scanf("%d" , &N) ;
    
    List = CreateList( N ) ;

    PrintfList( List ) ;

     InsertList( List ) ;
    PrintfList( List ) ;

}
2015-11-04 21:12
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:20 
在InsertList函数里链子没连起来,你只是简单地让当前和插入的相等
   PrePosition  = InsertNode 修改为 PrePosition->next  = InsertNode ;


[此贴子已经被作者于2015-11-4 21:38编辑过]


能编个毛线衣吗?
2015-11-04 21:35
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
收藏
得分:0 
回复 2楼 wmf2014
看到了。。。。cry...
2015-11-04 21:56
快速回复:为什么这个链表插入的程序插入数据后没输出
数据加载中...
 
   



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

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