Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > С/С++
Перезагрузить страницу Списки как с ними работать
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
gleban gleban вне форума
Member
 
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.05.2006
По умолчанию Списки как с ними работать - 30.05.2006, 20:52

Я наверное уже достал всех со своими тупыми задачами...Ламер проклятый........

Тема: Динамические конструиуемые типы данных.
Реализовать упорядоченный циклический список, тип данных - целые числа.
Прикладная задача:
исходный список заполняется из входного потока, затем программа меняет порядок элементов списка на обратный....

Вот че получилось:

Код:
#include <stdio.h>
#include <conio.h>


struct LINK
{
 int data;
 LINK *next;
};

typedef LINK *spisok;

spisok IniList(spisok  pt_lst)
{
    pt_lst = NULL;
    return pt_lst;
}

spisok AddList(spisok pt_lst, int new_el)
{
    if(pt_lst==NULL)
   {
    pt_lst=new LINK;
    pt_lst->data=new_el;
    pt_lst->next=pt_lst;
      }
    else
   {
      spisok pt_new=new LINK;
        pt_new->data = new_el;
        pt_new->next=pt_lst->next;
        pt_lst->next=pt_new;
     pt_lst=pt_new;
   }
       return pt_lst;
}

void WriteList(spisok pt_lst)
{
     spisok i=pt_lst;
       do
    {
  printf(" %d",pt_lst->data);
  pt_lst = pt_lst->next;
    }while(i!=pt_lst);

}
//................................................................................
...............
spisok PerList(spisok pt_lst, int el)                                                
{                                              
  spisok i=pt_lst;
  spisok lst2=IniList(lst2);
     do{
        for(int i1=0;i1<el;i1++)
           pt_lst=pt_lst->next;
        lst2=AddList(lst2,pt_lst->data);
       }while(i!=pt_lst);
     return lst2;
}
//................................................................................
.................

int main(void)
{
    spisok lst;
    int el,col=0;
    clrscr();
    printf("n Введите элементы списка:n");

    lst = IniList(lst);
    do
    {
  scanf("%d", &el);
        col++;
  lst = AddList(lst, el);
    }while(el!=0);
    printf("n Вот список:n");

    WriteList(lst->next);

    lst=PerList(lst->next, col-1);

    printf("n Теперь список такой:n");
    WriteList(lst->next);

    getch();
    return 0;
}

Функция PerList меняет порядок списка на обратный, но помойму я написал её коряво (как обычно)....

и еще.. как мне написать ф-ию, которая при вводе элементов списка сразу их упорядочивает???
Ответить с цитированием
  (#2 (permalink)) Старый
gleban gleban вне форума
Member
 
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.05.2006
По умолчанию Списки как с ними работать - 30.05.2006, 20:52

Я наверное уже достал всех со своими тупыми задачами...Ламер проклятый........

Тема: Динамические конструиуемые типы данных.
Реализовать упорядоченный циклический список, тип данных - целые числа.
Прикладная задача:
исходный список заполняется из входного потока, затем программа меняет порядок элементов списка на обратный....

Вот че получилось:

Код:
#include <stdio.h>
#include <conio.h>


struct LINK
{
 int data;
 LINK *next;
};

typedef LINK *spisok;

spisok IniList(spisok  pt_lst)
{
    pt_lst = NULL;
    return pt_lst;
}

spisok AddList(spisok pt_lst, int new_el)
{
    if(pt_lst==NULL)
   {
    pt_lst=new LINK;
    pt_lst->data=new_el;
    pt_lst->next=pt_lst;
      }
    else
   {
      spisok pt_new=new LINK;
        pt_new->data = new_el;
        pt_new->next=pt_lst->next;
        pt_lst->next=pt_new;
     pt_lst=pt_new;
   }
       return pt_lst;
}

void WriteList(spisok pt_lst)
{
     spisok i=pt_lst;
       do
    {
  printf(" %d",pt_lst->data);
  pt_lst = pt_lst->next;
    }while(i!=pt_lst);

}
//................................................................................
...............
spisok PerList(spisok pt_lst, int el)                                                
{                                              
  spisok i=pt_lst;
  spisok lst2=IniList(lst2);
     do{
        for(int i1=0;i1<el;i1++)
           pt_lst=pt_lst->next;
        lst2=AddList(lst2,pt_lst->data);
       }while(i!=pt_lst);
     return lst2;
}
//................................................................................
.................

int main(void)
{
    spisok lst;
    int el,col=0;
    clrscr();
    printf("n Введите элементы списка:n");

    lst = IniList(lst);
    do
    {
  scanf("%d", &el);
        col++;
  lst = AddList(lst, el);
    }while(el!=0);
    printf("n Вот список:n");

    WriteList(lst->next);

    lst=PerList(lst->next, col-1);

    printf("n Теперь список такой:n");
    WriteList(lst->next);

    getch();
    return 0;
}

Функция PerList меняет порядок списка на обратный, но помойму я написал её коряво (как обычно)....

и еще.. как мне написать ф-ию, которая при вводе элементов списка сразу их упорядочивает???
Ответить с цитированием
  (#3 (permalink)) Старый
gleban gleban вне форума
Member
 
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.05.2006
По умолчанию 02.06.2006, 17:58

Ни кто что-ли не знает как сделать???
Ответить с цитированием
  (#4 (permalink)) Старый
gleban gleban вне форума
Member
 
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.05.2006
По умолчанию 02.06.2006, 17:58

Ни кто что-ли не знает как сделать???
Ответить с цитированием
  (#5 (permalink)) Старый
Garik Garik вне форума
Member
 
Сообщений: 6,201
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 07.06.2002
По умолчанию 02.06.2006, 19:01

Цитата:
Originally posted by gleban
[b]Ни кто что-ли не знает как сделать???
Как? - это не вопрос. Потому что ответ на него всегда один: при помощи рук и головы.
Задай более конкретные вопросы и тебе на них ответят.
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Garik Garik вне форума
Member
 
Сообщений: 6,201
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 07.06.2002
По умолчанию 02.06.2006, 19:01

Цитата:
Originally posted by gleban
[b]Ни кто что-ли не знает как сделать???
Как? - это не вопрос. Потому что ответ на него всегда один: при помощи рук и головы.
Задай более конкретные вопросы и тебе на них ответят.
Ответить с цитированием
  (#7 (permalink)) Старый
Dian Dian вне форума
Member
 
Сообщений: 5,243
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2004
По умолчанию Re: Списки - 03.06.2006, 16:11

Цитата:
Originally posted by gleban
[b]как мне написать ф-ию, которая при вводе элементов списка сразу их упорядочивает???
Просматриваешь в ней весь список, пока не найдешь место, куда следует вставить конкретный элемент
Ответить с цитированием
  (#8 (permalink)) Старый
Dian Dian вне форума
Member
 
Сообщений: 5,243
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2004
По умолчанию Re: Списки - 03.06.2006, 16:11

Цитата:
Originally posted by gleban
[b]как мне написать ф-ию, которая при вводе элементов списка сразу их упорядочивает???
Просматриваешь в ней весь список, пока не найдешь место, куда следует вставить конкретный элемент
Ответить с цитированием
  (#9 (permalink)) Старый
gleban gleban вне форума
Member
 
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.05.2006
По умолчанию 09.06.2006, 16:25

Garik если конкретно, то у меня не выходит сделать упорядоченный ввод в циклическом списке(надеюсь так понятно )....

Циклический список отличается от обычного списка тем, что поле указателя последнего элемента указывает не на NULL, а на первый элемент списка...

Dian на словах то всё понятно, у меня прога не выходит
Народ, если можно то помогите сделать хотя-бы простой ввод в циклическом списке, с упорядоченным я сам какнить разберусь....
Ответить с цитированием
  (#10 (permalink)) Старый
Garik Garik вне форума
Member
 
Сообщений: 6,201
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 07.06.2002
По умолчанию 09.06.2006, 18:17

Цитата:
Originally posted by gleban
[b]Garik если конкретно, то у меня не выходит сделать упорядоченный ввод в циклическом списке(надеюсь так понятно )....

.....

Dian на словах то всё понятно, у меня прога не выходит
Алгоритм решения тебе написал Dian.
Покажи свои попытки реализовать это в коде, и тебе помогут исправить ошибки.
Ответ типа "совсем ничего не получается" означает, что ты просто сам не пробовал.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Модули как с ними работать Jean-Esther Haskell 3 01.05.2011 06:17
Многоуровневые списки как с ними работать imported_Юленька Lisp 12 30.11.2009 11:13
Структуры в Си как с ними работать misha-_- С/С++ 3 02.05.2009 14:11
Связные списки как с ними работать Areostar Visual Basic 0 07.06.2008 10:13
С++ списки как с ними работать imported_madjihad С/С++ 6 21.05.2008 16:58
Списки как с ними работать monday С/С++ 7 19.03.2008 03:30
С# и Oracle как с ними работать Cantona .NET 1 16.10.2007 21:17
API - Функции как с ними работать Serega_Mexanik Вопросы начинающих программистов 5 23.03.2006 01:02
C++ и SCO как с ними работать c++ Мысли вслух 6 28.01.2006 07:50
Unicode как с ними работать Exhu Delphi 4 22.03.2005 01:53
Двусвязные списки и операции над ними Anonymous Pascal 1 22.01.2004 20:24
IIS и ASP как с ними работать Anonymous ASP 2 04.04.2003 18:24



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов