早教吧作业答案频道 -->其他-->
数据结构问题急在线等#include<stdio.h>#include<stdlib.h>#defineListLength5;#defineERROR#defineOKintn=5;typedefintElemType;//元素类型typedefstructLNode{ElemTypedata;structLNode*next;
题目详情
数据结构问题 急 在线等#include <stdio.h> #include <stdlib.h> #define ListLength 5; #define ERROR #define OK int n=5; typedef int ElemType;//元素类型 typedef struct LNode { ElemType data; struct LNode *next; }LaNode, *LinkList; void CreateList_L (LinkList &La){ int i; LinkList p;//逆位序输入n个元素,建立带表头结点的链表L La=(LinkList)malloc(sizeof(LNode)); La->next=NULL; for (i=n; i>0;--i){ p=(LinkList)malloc(sizeof(LaNode)); scanf("%c", &p->data); p->next=La->next; La->next=p; } }//CreateList_L void MergeList_L(LinkList &La,LinkList &Lb,LinkList &Lc){ //La, Lb是有序表,归并得到有序表Lc LinkList pa, pb, pc; int i,n; pa = La->next; Lc = pc = La; for (i=n; i>0;--i){ pb=(LinkList)malloc(sizeof(LNode)); scanf("%c",&pb->data); } while (pa && pb) { if (pa>pb)//比较La和Lb数据的大小 *pc++=*pa++; else *pc++=*pb++;//按照降序排列形成Lc } pc->next = pa ? pa : pb; //插入剩余段 free(Lb); //释放Lb头结点 }//MergeList_L int GetElem_L(LinkList &L, int i, ElemType &e){ int j; LinkList p;//当第i个元素存在时,将其值赋给e并返回OK,否则返回ERROR p=L->next; //初始化,p指向第一个结点 j=1; //j为计数器 while( p && j<i){ //顺指针往后查找,直到p指向第i个元素或p为空 p=p->next; j++; } if (!p|| j>i) return 0; //第i个元素不存在 else e = p->data; return 1; } void SortList_L(LinkList &L,int n){ int i,j,t; LinkList p,q; for(i=0;i<n-1;i++){ p=L->next; q=L->next->next; for(j=0;j<n-1-i;j++){ if(p->data<q->data) //比较p和q的小小 {t=p->data;p->data=q->data;q->data=t;} //将L按照升序排列 p=p->next; q=q->next; } } } void PrintList_L (LinkList &L, int n){ LinkList p; p=L->next; while (p->next=NULL){ printf("%c",p->data); p=p->next; } } int main() { LinkList La,Lb,L; int i,e; printf("输入五个数据:\n"); CreateList_L(La); printf("再次输入五个数据:\n"); MergeList_L(La,Lb,L); GetElem_L(L,i,e); SortList_L(L,n); PrintList_L(L, n); return 0; } 这个程序 我现在已经改到没有组建和连接错误了 但是到输入第二组数据时程序就会报错 能帮我看看哪里不对么?
▼优质解答
答案和解析
#include #include #define ListLength 5 #define ERROR #define OK int n=5; typedef int ElemType;//元素类型 typedef struct LNode { ElemType data; struct LNode *next; }LaNode, *LinkList; void CreateList_L(LinkList &La){ int i; LinkList p;//逆位序输入n个元素,建立带表头结点的链表L La=(LinkList)malloc(sizeof(LaNode)); La->next=NULL; for (i=n; i>0;--i){ p=(LinkList)malloc(sizeof(LaNode)); scanf("%d", &p->data);//--为什么%c p->next=La->next; La->next=p; } }//CreateList_L void MergeList_L(LinkList &La,LinkList &Lb,LinkList &Lc){ //La, Lb是有序表,归并得到有序表Lc LinkList pa, pb, pc,tmp; int i,n; pa = La->next; pb = Lb->next; Lc = pc = La; while (pa && pb) {//--你的这里面完全不对 if (pa->data > pb->data)//比较La和Lb数据的大小 {pc->next=pa; pa=pa->next; pc=pc->next;} else {pc->next=pb; pb=pb->next; pc=pc->next;}//按照降序排列形成Lc } pc->next = pa ? pa : pb; //插入剩余段 free(Lb); //释放Lb头结点 }//MergeList_L int GetElem_L(LinkList &L, int i, ElemType &e){ int j; LinkList p;//当第i个元素存在时,将其值赋给e并返回OK,否则返回ERROR p=L->next; //初始化,p指向第一个结点 j=1; //j为计数器 while( p && jnext; j++; } if (!p|| j>i) return 0; //第i个元素不存在 else e = p->data; return 1; } void SortList_L(LinkList &L,int n){ int i,j,t; LinkList p,q; for(i=0;inext; q=L->next->next; for(j=0;jdatadata) //比较p和q的小小 {t=p->data;p->data=q->data;q->data=t;} //将L按照升序排列 p=p->next; q=q->next; } } } void PrintList_L (LinkList &L,int n){ LinkList p; p=L->next; while (p!=NULL){//这里也错了 printf("%d",p->data); p=p->next; } } int main() { LinkList La,Lb,L; int i,e; printf("输入五个数据:\n"); CreateList_L(La); printf("再次输入五个数据:\n"); CreateList_L(Lb);//--帮你加了这个 MergeList_L(La,Lb,L);//--这个函数修改了下 GetElem_L(L,i,e); SortList_L(L,n); PrintList_L(L,n); return 0; } 编译运行无问题
看了 数据结构问题急在线等#inc...的网友还看了以下:
已知字母组合成英语单词1、e e t t i n h r 2、e e r a t w h 3、o 2020-05-14 …
变限积分求道问题对函数f(t+h)-f(t-h)在[-h,h]上的积分对h求导.F(h)=∫[-h 2020-05-23 …
二元函数积分的应用题一个气球的体积被定义为V=(e^-h)/(1+t^2),h(t)>0表示在t时 2020-06-03 …
如图所示是长江沿江地带,它在“H”型格局中起什么作用?()A.辐射作用B.纽带作用C.“厂”的作用 2020-06-21 …
n-C3H7-H,i-C3H7-H这两个碳氢键是分别指CH3CH2CH2-H键和CH3-CH(CH 2020-07-07 …
变限积分[a,b]上的积分∫[f(x+h)-f(x)]dx令x+h=t,那原式=∫[a+h,b+h 2020-07-11 …
我发现傅里叶变换的巨大错误!先看两条结论:1.x(t)*h(t)的傅里叶级数系数为T·a(k)·b 2020-07-13 …
谁会用下列字母组成三个英语单词???g,a,l,o,ts,t,o,a,o,ha,s,f,t,ks,h 2020-11-01 …
请问怎么弄数学建模的灵敏度分析呢,下面这个程序要怎么改正?ft=@(h)((0.16-180)-(( 2020-11-08 …
h600*200*14*18在H型钢材料中表示什么意思,主要是问后面14,18分别表示的是什么? 2021-02-01 …