辣条星星 2022-04-11 22:41 采纳率: 100%
浏览 50
已结题

怎么把单链表长度去掉啊(就是不要请输入链表的长度),求求解

#include<stdio.h>
#include<stdlib.h>
#define OK 1
#define ERROR -1
typedef int Status;
typedef int ElemType;
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList;

Status InitList(LinkList &L){
L = new LNode;
L->next = NULL;
return OK;
}

void CreateList(LinkList &L,int m){
LinkList t;
printf("请输入数值:");
for(int p = 0 ; p < m ; p++){
t = new LNode;
scanf("%d",&t->data);
t->next = L->next;
L->next = t;
}
}
int GetMax(LinkList L){
LNode *pmax,*p;
if(L->next == NULL)
return NULL;
pmax = L->next;
p = L->next->next;
while (p){
if(p->data > pmax->data)
pmax = p;
p = p->next;
}
return pmax->data;
}

int main(){
int n,a;
LinkList L;
InitList(L);
printf("请输入链表的长度:");
scanf("%d",&n);
CreateList(L,n);
a=GetMax(L);
printf("最大结点:%d\n",a);
return 0;
}

img

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-04-11 23:53
    关注

    修改如下,供参考:

    #include<stdio.h>
    #include<stdlib.h>
    #define OK 1
    #define ERROR -1
    typedef int Status;
    typedef int ElemType;
    typedef struct LNode{
        ElemType data;
        struct LNode *next;
    }LNode,*LinkList;
    
    Status InitList(LinkList &L){
        L = new LNode;
        L->next = NULL;
        return OK;
    }
    
    void CreateList(LinkList &L,int m){
        LinkList t;
        printf("请输入数值:");
        for(int p = 0 ; p < m ; p++){
            t = new LNode;
            scanf("%d",&t->data);
            t->next = L->next;
            L->next = t;
        }
    }
    void CreateList_1(LinkList &L){ //修改
        LinkList t;
        ElemType data;
        printf("请输入数值(-1:结束输入):");
        while (1){
            scanf("%d",&data);
            if (data == -1) break;
            t = new LNode;
            t->data = data;
            t->next = L->next;
            L->next = t;
        }
    }
    int GetMax(LinkList L){
        LNode *pmax,*p;
        if(L->next == NULL)
           return NULL;
        pmax = L->next;
        p = L->next->next;
        while (p){
           if(p->data > pmax->data)
              pmax = p;
           p = p->next;
        }
        return pmax->data;
    }
    
    int main(){
        int n,a;
        LinkList L,L1;  //修改
        //InitList(L);
        InitList(L1);   //修改
        //printf("请输入链表的长度:");
        //scanf("%d",&n);
        //CreateList(L,n);
        CreateList_1(L1);//修改
        a=GetMax(L1);    //修改
        printf("最大结点:%d\n",a);
    
        return 0;
    }
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月21日
  • 已采纳回答 4月13日
  • 创建了问题 4月11日