m0_74057449 2022-12-18 17:05 采纳率: 100%
浏览 77
已结题

C语言链表文件的数据操作综合

img

img

img


链表是一种动态数据结构,相较于数组而言,链表不需要预留空间,数据可以存储于内存的任何可用的位置,易于扩展。同时,相较于数组,链表增加和删除数据的效率较高,随机读取数据的效率较低。请完成本次实验,体会链表的这些特点。

  • 写回答

4条回答 默认 最新

  • 语言-逆行者 2022-12-18 17:23
    关注

    第一题:

    #include<stdio.h>
    #include<stdlib.h>
    #include<String.h>
    typedef char ElemType;
    typedef struct Link{
      ElemType str[50];
      struct Link *next;
    }Link;
    //初始化,创建头结点
    Link *initList(Link *L)
    {
        L = (Link *) malloc(sizeof(Link));//为头结点分配空间
        L->next = NULL;//头结点指针域置空
        return L;
    }
    //创建指定个数的单链表
    Link *createList()
    {
        int i;
        ElemType e[50];
        char s[50]="******";
        Link *L = initList(L), *r, *n;//分别定义头指针、尾指针、新指针
        r = L;//尾指针初始化为头指针
        for(;;)
        {
            n = (Link *) malloc(sizeof(Link));//申请空间
            scanf("%s",n->str);
            if(strcmp(n->str,s)==0){break;}
            n->next = NULL;//新指针指针域置空
            r->next = n;//将新指针链入单链表末尾
            r = r->next;//尾指针往后移
    
        }
        return L;
    }
    
    void seachLinkLong(Link *L,ElemType e[50])
    {
        Link *r = L->next;
       for(;r!=NULL;)
        {
            if(strlen(r->str)>strlen(e)) 
            {
                 strcpy(e,r->str);
            }
            r = r->next;//尾指针后移
            
        }
    }
    
    int main(){
        Link*L;
        ElemType e[50];
        L = createList();
        seachLinkLong(L,e);
        printf("%s",e);
        return 0;
    }
    
    

    第二题运行截图:

    img

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

报告相同问题?

问题事件

  • 系统已结题 12月27日
  • 已采纳回答 12月19日
  • 赞助了问题酬金15元 12月18日
  • 创建了问题 12月18日

悬赏问题

  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错
  • ¥15 换yum源但仍然用不了httpd
  • ¥50 C# 使用DEVMOD设置打印机首选项
  • ¥15 麒麟V10 arm安装gdal
  • ¥20 OPENVPN连接问题