可要加油咯 2022-07-05 16:29 采纳率: 80%
浏览 24
已结题

关于#链表#的问题,如何解决?

按值查找结果出不来,感谢指正

#include <stdio.h>
#include <stdlib.h>
typedef struct Node     //结构体,表示出单链表每个节点的内容,用以定义出单链表//
{
    int data;           //定义节点的数据域//
    struct Node *next;        //定义节点的指针域,该指针变量类型为结构体类型 //
}Node,*LinkList;        //结构体别名Node,定义一个指针变量LinkList指向结构体//


/*初始化单链表*/
void InitList(LinkList *L)  //*L是空链表指针变量,代表空链表,初始化的是只能是变量!不能是指针// 
{
    *L = (Node *)malloc(sizeof(Node));   //建立头节点,内存空间是节点结构体定义出的内存空间//
    (*L)->next = NULL;           //空链表//
}
/*尾插法*/
void TailInsert(LinkList L)
{
    Node *s;
    Node *r;
    char c;
    int flag = 1;
    printf("请依次输入要存入单链表的元素(以'$'结束):\n");
    r = L;
    while(flag==1)        //判断flag是否为1// 
    {
        c = getchar();
        if(c!='$')
        {
            s=(Node *)malloc(sizeof(Node));  //创建新结点// 
            s->data=c;
            r->next=s;
            r=s; 
        }
        else
        {
            flag=0;      //置flag为零// 
            r->next=NULL;
        }
    }
} 
/*按值查找*/
Node *Locate(LinkList L,char key)
{
    Node *q;
    q = L->next;     //从头结点开始遍历// 
    while(q->data!=NULL)    //表未查完// 
    {
        if(q->data!=key)
        {
            q=q->next;
        }
        else
        break;     //找到q->data=key时,跳出循环// 
    }
    return q;
} 


/*输出链表*/ 
void PrintList(LinkList L)
{
    LinkList p;
    p=L->next;
    printf("链表元素如下:\n");
    while(p!=NULL)
    {
        printf("%c",p->data);
        p=p->next;
    }
    printf("\n");
}


int main()
{
    int i;
    char key;
    LinkList L;        //建立一个空链表// 
    Node *p;          //建立新结点指针变量//
    Node *q; 
    InitList(&L);       //初始化此空链表// 
    //HeadInsert(L);
    TailInsert(L);
    PrintList(L);
    printf("请输入要查找的元素值key:",key);  //按值查找//
    key=getchar();
    q = Locate(L,key);
    printf("查找到的元素为:%c\n",q->data);
    return 0; 
}

  • 写回答

3条回答 默认 最新

  • 快乐鹦鹉 2022-07-05 16:36
    关注

    while(q->data!=NULL)
    改为
    while(q !=NULL)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月13日
  • 已采纳回答 7月5日
  • 创建了问题 7月5日

悬赏问题

  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?