wuliangtdi 发表于 2019-4-8 21:13:14

单链表问题

#include<stdio.h>
#include<stdlib.h>
#define typedata int
typedef struct Node
{
        typedata data;
        struct Node* next;               
}Node,*linklist;

void Head_Inint(linklist *L)    //**建立带有头结点的单链表**//
{
        *L=(linklist)malloc(sizeof(Node));
        (*L)->next=NULL;
}

void creat_head_list(linklist L)   //**头插法建立单链表**//
{
        Node* s;
        char c;
        int flag=1;
        while (flag)
        {
                c=getchar();
                if(c=='
运行之时程序会停止运行,不知道是什么原因,请大神指教指教)
                {
                        flag=0;
                }
                else
                {
                        s=(Node*)malloc(sizeof(Node));//**申请节点**//
                        s->data=c;
                        s->next=L->next;//**把L->next的值赋给s->next**//
                        L->next=s;       //**把L->next指向s**//
                }
        }
}
void creat_tail_linklist(linklist L) //**尾插法建立单链表**//
{
        Node *s,*r;
        char c;
        int flag=1;
        r=(Node*)malloc(sizeof(Node));
        r=L;                               //**节点r暂时指向L**//
        while(flag)
        {
                c=getchar();
                if(c=='
运行之时程序会停止运行,不知道是什么原因,请大神指教指教)       
                {
                        flag=0;
                        r->next=NULL;       
                }       
                else
                {
                        s=(Node*)malloc(sizeof(Node));
                        s->data=c;
                        r->next=s;
                        r=s;
                }
        }        
}
void out_put(linklist L)
{
        while(L->next!=NULL)
        {
                printf("%d",L->data);
                L=L->next;       
        }
}
int main()
{
        linklist *L1;
        Head_Inint(L1);
        printf("请输入:");
        creat_tail_linklist(*L1);               
}

运行之时程序会停止运行,不知道是什么原因,请大神指教指教

82457097 发表于 2019-4-8 21:13:15

大概改了一下,按照你main函数的要求,应该实现了你想要的结果,楼主对照一下代码就行了;

#include<stdio.h>
#include<stdlib.h>
#define typedata int
typedef struct Node
{
      typedata data;
      struct Node* next;               
}Node,*linklist;

void Head_Inint(linklist *L)    //**建立带有头结点的单链表**//
{
      *L=(linklist)malloc(sizeof(Node));
      (*L)->next=NULL;
}

/*void creat_head_list(linklist *L)   //**头插法建立单链表
{
      Node* s;
      char c;
      int flag=1;
      while (flag)
      {
                c=getchar();
                if(c=='q')
                {
                        flag=0;
                }
                else
                {
                        s=(Node*)malloc(sizeof(Node));//**申请节点
                        s->data=c;
                        s->next=L->next;//**把L->next的值赋给s->next
                        L->next=s;       //**把L->next指向s
                }
      }
}*/
void creat_tail_linklist(linklist *L) //**尾插法建立单链表**//
{
      Node *s,*r;
      char c;
      int flag=1;
      r=(Node*)malloc(sizeof(Node));
      r=*L;                               //**节点r暂时指向L**//
      while(flag)
      {
                c=getchar();

                if(c=='q')      
                {
                        flag=0;
                        r->next=NULL;
                                                break;      
                }      
                else
                {
                        s=(Node*)malloc(sizeof(Node));
                        s->data=c;
                        r->next=s;
                        r=s;
                }
      }         
}
void out_put(linklist *L)
{
        linklist p;
        p = (*L)->next;
         while(p)
         {
               printf("%c",p->data);
                p=p->next;      
      }
}
int main()
{
      linklist L1;
      Head_Inint(&L1);
      printf("请输入:");
      creat_tail_linklist(&L1);
      out_put(&L1);
                return 0;               
}

82457097 发表于 2019-4-8 21:29:54

1.函数传值应该是错的 应该传入指针的地址
2.out put函数不对 第一个Ldata没有值

刘邦 发表于 2019-4-8 21:42:46

typedy不是这样用的,c是一个char类型不是int ,头插法和尾插法写两个有问题,后面的那个out_put也没用,c==没有明确的结束条件,结构体和函数实参形参传递好像有问题,头指针建议在main函数中建立。

wuliangtdi 发表于 2019-4-8 22:34:56

82457097 发表于 2019-4-8 21:13
大概改了一下,按照你main函数的要求,应该实现了你想要的结果,楼主对照一下代码就行了;

老哥 挺厉害的啊{:5_109:}

82457097 发表于 2019-4-8 22:37:18

wuliangtdi 发表于 2019-4-8 22:34
老哥 挺厉害的啊

恰好刚学完这里 大家犯的错误几乎都差不多 算是互相学习一下{:10_254:}

wuliangtdi 发表于 2019-4-8 22:38:54

82457097 发表于 2019-4-8 22:37
恰好刚学完这里 大家犯的错误几乎都差不多 算是互相学习一下

嘿嘿 一起加油吧{:5_95:}
页: [1]
查看完整版本: 单链表问题