头都大了了 2022-05-07 11:51 采纳率: 85.7%
浏览 84
已结题

【C语言】数据结构,基本结构体设计问题

请问一以下这个结构应该怎么利用结构体以及指针完成呢?(可以提供一下注释吗,谢谢!)
补充一下,想使用二重链表来对音乐做一个排列,请问如何实现呢?

img

typedef struct _artist artist;
typedef struct _artist{
    char name[20];
}artist;
typedef struct _song song;
typedef struct _song{
    char name[30];
    char singer[30];
    song *a;
}song;
typedef struct _listNode *listPointer;
typedef struct _listNode{
    song data;
    listPointer link;
}ListNode;

我只做到这里,后面结构体之间的指针不知道该怎么弄

  • 写回答

4条回答 默认 最新

  • wind_2067 2022-05-07 13:32
    关注
    获得0.70元问题酬金

    代码有些冗长,请见谅

    
    #include <string>
    
    struct Artist;
    struct sNode;
    struct Song;
    
    //Artist 信息
    struct Artist
    {
        std::string name;    //名称
        Artist* next;        //下一个 artist
        Artist* head;        //首项 artist
        sNode* tail;        //对应 sNode
    
        //--构造函数
        //首项
        Artist(std::string name, sNode* tail)
            :
            name(name),
            tail(tail),
            head(this)
        {}
        //其余
        Artist(Artist* head, Artist* prev, std::string name, sNode* tail)
            :
            name(name),
            tail(tail),
            head(head)
        {
            prev->next = this;
        }
    };
    
    
    //Snode 信息
    struct sNode
    {
        sNode* next;    //下一个 sNode
        sNode* prev;    //上一个 sNode
        Song* song;    //对应 Song
    
        //--构造函数
        sNode(sNode* next, sNode* prev, Song* song)
            :
            next(next),
            prev(prev),
            song(song)
        {}
    };
    
    
    //Song 信息
    struct Song
    {
        Artist* artist;        //对应 Artist
        std::string    title;    //标题
        std::string path;    //文件路径
        int index;            //索引
    
        //--构造函数
        Song(Artist* artist, std::string title, std::string path, int index)
            :
            artist(artist),
            title(title),
            path(path),
            index(index)
        {}
    };
    
    评论

报告相同问题?

问题事件

  • 系统已结题 5月15日
  • 修改了问题 5月7日
  • 修改了问题 5月7日
  • 创建了问题 5月7日

悬赏问题

  • ¥15 如何在vue3中使用div标签时用background-image: url("'templates/demo/src/assets/医院名称.jpg'")页面不显示背景图片?
  • ¥15 oracle查询Socket read timed out错误
  • ¥15 运动会成绩管理系统的设计与实现
  • ¥15 matlab支持向量机使用错误
  • ¥99 利用C/C++语言,使用TCP/IP协议,编一个简易聊天程序
  • ¥15 如何使用python 实现对串口/dev/ttyUSB0进行上锁,使得该串口只能在一个python脚本中使用,其他脚本不能操作这个串口
  • ¥15 晶体塑性有限元——Damask求解
  • ¥30 设计一个图形用户界面来控制你机械臂的运动
  • ¥30 3d打印机无法识别到SD卡,如何解决?(相关搜索:格式化)
  • ¥15 前端返回pdf时不显示内容