| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 612 人关注过本帖
标题:编译通过,但程序意外停止。
只看楼主 加入收藏
luojie5683
Rank: 2
来 自:重庆
等 级:论坛游民
帖 子:69
专家分:49
注 册:2011-10-10
结帖率:70%
收藏
已结贴  问题点数:30 回复次数:9 
编译通过,但程序意外停止。
#include<stdio.h>
#include<malloc.h>
#include<iostream.h>
#include<conio.h>
#define N 10
typedef struct LNode
{
    int data;
    struct LNode *next;
}LNode,*Linklist;
void Add(Linklist&L)
{
    int k[N],i;
    LNode *L3,*p;
    p=L->next;
    for(i=0;p;i++)
    {
        k[i]=p->data;
        p=p->next;
    }
    L3=(Linklist)malloc(sizeof(LNode));
    L3->next=NULL;
    p=L3->next;
    while(--i>=0)
    {
        p=(Linklist)malloc(sizeof(LNode));
        p->data=k[i];
        p=p->next;
    }
    p=L3->next;
    while(p)
    {
        cout<data<<"   ";
        p=p->next;
    }
}
void main()
{
    int i;
    LNode *L1,*L2,*p;
    cout<<endl<<"请输入4个数,按升序排列。";
    L1=(Linklist)malloc(sizeof(LNode));
    L1->next=NULL;
    p=L1;
    for(i=0;i<4;i++)
    {
        p=(Linklist)malloc(sizeof(LNode));
        cin>>p->data;
        p=p->next;
    }
    cout<<endl<<"请输入6个数,按升序排列。";
    L2=(Linklist)malloc(sizeof(LNode));
    L2->next=NULL;
    p=L2;
    for(i=0;i<6;i++)
    {
        p=(Linklist)malloc(sizeof(LNode));
        cin>>p->data;
        p=p->next;
    }
   if(L1->next->data>L2->next->data)
    {
        Add(L1);
        Add(L2);
    }
    else
    {
        Add(L2);
        Add(L1);
    }
   
}

问题描述:两个单链表元素按升序排列,将两个单链表合并为一个新链表按降序排列,保留原两个单链表的结点,合并后的单链表用新链表存储。      该代码编译时没出错,但运行时程序会意外停止,请高手指教一下,为什么会这样?

搜索更多相关主题的帖子: next void include 
2012-04-17 22:31
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
p=L1;

p=L2;

和下面的操作明显不正确   L1 和 L2  并没有把你输入的数据串起来   链表是断的 L1->next 和 L2->next  都是NULL

后面的操作就不用分析了  
 
 
2012-04-17 23:35
luojie5683
Rank: 2
来 自:重庆
等 级:论坛游民
帖 子:69
专家分:49
注 册:2011-10-10
收藏
得分:0 
回复 2楼 寒风中的细雨
L1->next=NULL;和L2->next=NULL;是头指针,没错啊,该怎么改呢?求指教。
2012-04-18 16:55
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:15 
你修改了p的值 却没有达到修改相应的L1->next  L2->next 值   调试下看看
2012-04-18 17:08
luojie5683
Rank: 2
来 自:重庆
等 级:论坛游民
帖 子:69
专家分:49
注 册:2011-10-10
收藏
得分:0 
回复 4楼 寒风中的细雨
我把p=L1;和p=L2;改成了p=L1->next;和p=L2->next;还是不行,我是新手,请高手详细讲解一下。
2012-04-18 18:10
ran5515
Rank: 2
等 级:论坛游民
帖 子:11
专家分:20
注 册:2012-4-13
收藏
得分:15 
回复 4楼 寒风中的细雨
版主,可否通过我的贴啊,我那个不是求作业呢,我有代码还没发上去;
上次发好像还没要审核,本想第二行发代码,可是还没通过审核
2012-04-18 18:15
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
回复 5楼 luojie5683
程序代码:
//main.cpp
#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;
#define N    (10)//
typedef struct LNode
{
    int m_Data;
    LNode *m_Next;
}*LinkList;
void Print(LinkList nList)
{
    LinkList nTmp = nList->m_Next;
    while (NULL != nTmp)
    {
        cout << nTmp->m_Data << " ";
        nTmp = nTmp->m_Next;
    }
    cout << endl;
}
int main()
{
    int i;
    LinkList L1 = NULL;
    LinkList L2 = NULL;
    LinkList p = NULL;

    L1 = (LinkList) malloc (sizeof(LNode));
    L1->m_Next = NULL;
    L2 = (LinkList) malloc (sizeof(LNode));
    L2->m_Next = NULL;

    cout << endl << "请输入4个数,按升序排列:";
    p = L1;
    for (i=0; i<4; ++i)
    {
        p->m_Next = (LinkList) malloc (sizeof(LNode));
        p = p->m_Next;
        cin >> p->m_Data;
    }
    p->m_Next = NULL;

    cout << endl << "请输入6个数,按升序排列:";
    p = L2;
    for (i=0; i<6; ++i)
    {
        p->m_Next = (LinkList) malloc (sizeof(LNode));
        p = p->m_Next;
        cin >> p->m_Data;
    }
    p->m_Next = NULL;

    cout << "Print L1:" ;
    Print(L1);

    cout << "Print L2:";
    Print(L2);

    return 0;
}
2012-04-18 19:04
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
回复 6楼 ran5515
版主没这个功能
2012-04-18 19:07
luojie5683
Rank: 2
来 自:重庆
等 级:论坛游民
帖 子:69
专家分:49
注 册:2011-10-10
收藏
得分:0 
回复 7楼 寒风中的细雨
懂了,我是学生,刚开始学数据结构,感觉似懂非懂,还望以后多指教,不胜感激。
2012-04-18 21:05
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
回复 9楼 luojie5683
大家都是学生
2012-04-18 21:10
快速回复:编译通过,但程序意外停止。
数据加载中...
 
   



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

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