как создать этот тип связанный список - PullRequest
1 голос
/ 09 августа 2011
// this is program designed to create Cd data base

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

//=============================================
//LINKED LIST USED FOR CREATING THE DATABASE CD
//=============================================
struct CD_type_node
{
   int CDnum;
   char title[20];
   int CDcount;
   struct CD_type_node* next;
};

struct Artist_type_node // to create a linked list of CD's
{
   struct CD_type_node CD_data;
   char Artist_name[20];
   struct Artist_type_node* next;
};

это часть проекта:
1) Создайте структуру CD_type_node, имеющую следующие поля:

  • Номер CD
  • Название CD
  • CD count
  • Указатель на CD_type_node для указания на следующий CD.

2) Создайте структуру Artist_type_node, имеющую следующие поля:

  • Artist'sname
  • Указатель на узел CD_type_node, позволяющий создавать связанный список для компакт-дисков.

3) В главном файле создайте массив типа Artist_type_nodes, который может хранить до100 элементов.

Таким образом, в вашей базе данных будет массив из 100 исполнителей, где у каждого исполнителя есть список компакт-дисков.По сути, имя каждого исполнителя и указатель на список компакт-дисков будут сохранены в Artist_Array.


, когда я компилирую, это то, что он говорит мне: struct CD_type_node не имеет элемента Artist_name

как мне создать правильный связанный список и как мне создать массив

Ответы [ 3 ]

1 голос
/ 09 августа 2011

когда я компилирую это то, что он говорит мне: struct CD_type_node не имеет элемент Artist_name

Ну, из того, что вы показали, CD_type_node действительно не имеет поля с именем Artist_name. Возможно, вы путаете CD_type_node с Artist_type_node объектом ?

0 голосов
/ 09 августа 2011
// this is program designed to create Cd data base

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

//=============================================
//LINKED LIST USED FOR CREATING THE DATABASE CD
//=============================================
struct CD_type_node
{
   int CDnum;
   char title[20];
   int CDcount;
   struct CD_type_node* next;
};

struct Artist_type_node // to create a linked list of CD's
{
   struct CD_type_node* CD_node;
   char Artist_name[20];
};

int main()
{
    struct Artist_type_node artists[100];
}

Измените ваш Artist_type_node, как я показал.

Изменить: Обязательно прочитайте внимательно, потому что это объясняет, как сделать это в вашей домашней работе.

0 голосов
/ 09 августа 2011

Либо добавьте строку Artist_name в CD_type_node, либо добавьте указатель на родительский Artist_type_node, чтобы сэкономить память.Теперь для достижения этого сначала сделайте объявление Artist_type_node, затем реализуйте CD_type_node и затем напишите реализацию Artist_type_node.Чтобы использовать эту структуру, скажем, вы просматриваете какой-нибудь CD_type_node и хотите указать имя исполнителя, затем вы создаете новый Artist_type_node и назначаете на него указатель.Прочитайте значение и удалите новый Artist_type_node, ИЛИ используйте какой-нибудь глобальный Artist_type_node и продолжайте переключать его указатель - но это плохая практика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...