Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2013, 16:55   #11
Vasya94
Пользователь
 
Регистрация: 20.04.2013
Сообщений: 55
По умолчанию

Вот.
Код:
#include "stdafx.h" 
#define N 6
 
typedef struct List
{
    float nValue;
    List* pNext;
} LIST;
void AddTail(int value)
{
    LIST* pListItem = new LIST;
    pListItem->nValue = value;
    pListItem->pNext = NULL;
}
 
LIST* pList = NULL;
LIST* pListTail = NULL;
 
void AddTail(int value);
 
int main(void)
{
    static int D[N] = { 1,2,3,6,7,8 };
 
    for (int i = 0; i < N; i++)
    { AddTail(D[i]);
	printf("%d ",D[i]); }
 
    printf("\n");
    return 0;
}
Vasya94 вне форума Ответить с цитированием
Старый 17.05.2013, 16:59   #12
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Ага. Только есть одна странность: nValue имеет тип float, а AddTail принимает аргумент типа int. Нехорошо.
Теперь напишите структуру, которая состоит из беззнакового целого числа и вещественного числа. Назовите её struct Term.


Так, стоп. Эта штука у Вас не работает. Совсем.
Пожалуйста, объясните словами, как, в Вашем представлении, работает AddTail и какой эффект она производит.
Abstraction вне форума Ответить с цитированием
Старый 17.05.2013, 17:04   #13
Vasya94
Пользователь
 
Регистрация: 20.04.2013
Сообщений: 55
По умолчанию

Вот, чуть-чуть ошибся, эта функция создает список,как я это понимаю.
Код:
#include "stdafx.h" 
#define N 6
 
typedef struct List
{
    int nValue;
    List* pNext;
} LIST;
void AddTail(int value)
{
    LIST* pListItem = new LIST;
    pListItem->nValue = value;
    pListItem->pNext = NULL;
}
 
LIST* pList = NULL;
LIST* pListTail = NULL;
 
void AddTail(int value);
 
int main(void)
{
    static int D[N] = { 1,2,3,6,7,8 };
 
    for (int i = 0; i < N; i++)
    { AddTail(D[i]);
	printf("%d ",D[i]); }
 
    printf("\n");
    return 0;
}
Vasya94 вне форума Ответить с цитированием
Старый 17.05.2013, 17:07   #14
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Функция AddTail. Три строчки плюс заголовок. Что она, в целом, должна делать? Что делает каждая из этих трёх строчек? Дают ли эти три строчки в сумме желаемое и почему?
Abstraction вне форума Ответить с цитированием
Старый 17.05.2013, 17:47   #15
Vasya94
Пользователь
 
Регистрация: 20.04.2013
Сообщений: 55
По умолчанию

Хотите сказать что эта функция не создает список ?Я попытался сделать как было в Интернете.
Vasya94 вне форума Ответить с цитированием
Старый 17.05.2013, 17:58   #16
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Хотите сказать что эта функция не создает список ?Я попытался сделать как было в Интернете.
Зря. Если Вы не понимаете, как работает копируемый невесть откуда код, то это лишь вопрос времени, пока он не навернётся самым противоестественным образом - и такое копирование не даёт Вам ровным счётом никаких знаний. Данный образчик всего лишь не работает, это стоит считать удачей.

Ещё раз. Самостоятельно. Объявите структуру "узел списка". Если не понимаете, как это сделать, опишите словами, что такое список. Если не знаете этого, изложите, что такое, по-Вашему, "указатель".
Abstraction вне форума Ответить с цитированием
Старый 17.05.2013, 18:03   #17
Vasya94
Пользователь
 
Регистрация: 20.04.2013
Сообщений: 55
По умолчанию

Я знаю ,что такое указатель, так же как и список.Вот создаю структуру.
Код:
struct node
{
int value;
node *next;
}
struct list
{
    struct node* head;
    struct node* tail;
};
Vasya94 вне форума Ответить с цитированием
Старый 17.05.2013, 18:16   #18
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Отлично. Теперь напишите:
1) Функцию, которая принимает указатель на struct list и указанному объекту приравнивает head и tail к NULL. Называется list_init.
2) Функцию, которая принимает указатель на struct list и переменную типа int и добавляет в указанный объект новый узел с головы. Называется list_add_head.
3) Функцию, которая принимает указатель на struct list и удаляет из него все элементы. Называется list_clear.
Abstraction вне форума Ответить с цитированием
Старый 17.05.2013, 18:41   #19
Vasya94
Пользователь
 
Регистрация: 20.04.2013
Сообщений: 55
По умолчанию

1)
Код:
void list_init(list* lst)
{
    lst->head = 0;
    lst->tail = 0;
}
3)
Код:
void free_list(list* phead,int r)
{r = phead;
    while (r==NULL)
    {
         STUDENT *next = r->next;
         delete r;
         r = next;
    }
    
}
2)
Код:
void add_first(struct list *Head, struct list*NewNode)
{
   NewNode -> next = Head;
   Head = NewNode;
}
Vasya94 вне форума Ответить с цитированием
Старый 17.05.2013, 18:42   #20
Vasya94
Пользователь
 
Регистрация: 20.04.2013
Сообщений: 55
По умолчанию

Простите там 3 не правильно ,делал со своей задачи про студентов...
Код:
void free_list(list* phead,int r)
{r = phead;
    while (r==NULL)
    {
         list*next = r->next;
         delete r;
         r = next;
    }
    
}
Vasya94 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать односвязный список и вывести его на экран. Из этого списка создать новый список по указанному ниже правилу и новый список San111 Паскаль, Turbo Pascal, PascalABC.NET 1 15.05.2012 22:08
Необходимо реализовать классы, односвязный список для хранения целых чисел, односвязный список для хранен lineico Помощь студентам 2 09.05.2011 17:45
[C] Односвязный список Dieno Помощь студентам 2 19.10.2009 18:52
C++. Односвязный список. Уничтожить список Olya90 Помощь студентам 2 10.06.2009 18:52