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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.09.2015, 15:20   #1
Ayir
Новичок
Джуниор
 
Регистрация: 17.09.2015
Сообщений: 6
По умолчанию Двусвязный список, добавление в указанное место

У меня в коде стоит добавление в начало списка, остальной код я как-то наколхозил, а вот добавление в указанное место не могу. Хелп, отчисляют.
Код:
#include <stdio.h>
#include <stdlib.h>
#include "malloc.h"
#include "locale.h"

struct stack
{
int info;
struct stack *next;
} 
*start=0,*end=0;

void dobavlenie();
void vivod();
void maximal();
void udalenie();

int main()
{
setlocale(LC_ALL,"rus");
int a;
do
{
printf("\n");
printf("1.Добавить запись в указаное место\n");
printf("2.Удаленить запись из начала\n");
printf("3.Вывести список\n");
printf("4.Значение максимального элемента\n");
printf("5.Выход из программы\n");
printf("\n");
scanf("%d",&a);
switch(a)
{
case 1:printf("\n");dobavlenie();;break;
case 3:printf("\n");vivod();break;
case 2:printf("\n");udalenie();break;
case 4:printf("\n");maximal();break;
};
}
while(a!=5);
free(start);
return 0;
}

void dobavlenie()
{
struct stack *temp;
int a;
temp=(struct stack*) malloc(sizeof(struct stack));
if(end)
{
end->next=temp;
}
temp->next=NULL;
printf("Запись: ");
scanf("%d",&a);
temp->info=a;
end=temp;
if(!start) start=end;
}

void vivod()
{
struct stack *temp;
temp=start;
while(temp)
{
printf("%d\n",temp->info);
temp=temp->next;
}
}

void maximal()
{
int max=start->info;
for(struct stack *temp=start->next;temp;temp=temp->next)
{
if(max<temp->info)
{
max=temp->info;
}
}
printf("%d\n",max);
}

void udalenie()
{
struct stack *temp;
if(start) temp=start->next; else return;
free(start);
start=temp;
}

Последний раз редактировалось Ayir; 18.09.2015 в 13:28.
Ayir вне форума Ответить с цитированием
Старый 17.09.2015, 15:25   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
void dobavlenie(int n)
{
 struct stack *temp=start;
 for(;n && temp;n--) temp=temp->next;
 if(!temp) return;
... Тут код добавления
Идею уловил?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.09.2015, 16:31   #3
Ayir
Новичок
Джуниор
 
Регистрация: 17.09.2015
Сообщений: 6
По умолчанию

Да что-то посредственно очень. Пол дня сижу уже над ней. Пропустил тему с -> и подобным
Ayir вне форума Ответить с цитированием
Старый 17.09.2015, 16:53   #4
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

да не парься, не пропадешь. рабочие руки всегда нужны.
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 17.09.2015, 18:07   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Да что-то посредственно очень.
Могу предложить с описанием:
http://www.programmersforum.ru/showp...8&postcount=25
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.09.2015, 13:23   #6
Ayir
Новичок
Джуниор
 
Регистрация: 17.09.2015
Сообщений: 6
По умолчанию

Пардон. Список односвязный. Кааак. Плез

Последний раз редактировалось Ayir; 18.09.2015 в 13:28.
Ayir вне форума Ответить с цитированием
Старый 18.09.2015, 15:37   #7
Ayir
Новичок
Джуниор
 
Регистрация: 17.09.2015
Сообщений: 6
По умолчанию

Был написан вот такой код
Код:
struct stack* add(struct stack* const elem,const int value)
{
    struct stack* new_struct = (struct stack*)malloc(sizeof(struct stack*));
    new_struct->next = 0;
    new_struct->info = value;
    elem->next = new_struct;
    return new_struct;
}
Ошибки, ошибки. С ним что-то не так?
Ayir вне форума Ответить с цитированием
Старый 18.09.2015, 16:53   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
sizeof(struct stack*)
Звезду убери.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.09.2015, 18:32   #9
Ayir
Новичок
Джуниор
 
Регистрация: 17.09.2015
Сообщений: 6
По умолчанию

Ошибка 2 error C2601: add: недопустимые локальные определения функций
Ayir вне форума Ответить с цитированием
Старый 18.09.2015, 18:59   #10
Ayir
Новичок
Джуниор
 
Регистрация: 17.09.2015
Сообщений: 6
По умолчанию

Давайте вы мне сделаете код добавления в любое место к моему коду. А я вам USP Страж | Прямо с завода накину. Незнаю, я бы заплатил, да нету, а сдать нужно завтра.
Ayir вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двусвязный список b0006 C# (си шарп) 1 14.11.2014 18:09
Процедура, которая вставляет элемент в указанное место числового массива Rossomaxa Паскаль, Turbo Pascal, PascalABC.NET 1 08.12.2013 21:28
Вставка диаграммы из Excel в Word в указанное место закладкой. Erop777 Microsoft Office Word 3 10.01.2013 16:11
Добавление строки или столбца в указанное место массива revaldo666 Общие вопросы C/C++ 11 28.03.2011 16:47
Переод каретки в указанное место в RE MyLastHit Общие вопросы Delphi 8 08.08.2010 20:49