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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2011, 23:37   #1
Сайын
Пользователь
 
Регистрация: 29.04.2011
Сообщений: 20
По умолчанию Двусвязный список. Алфавитный порядок

Код:
//---------------------------------------------------------------------------
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
#include <string.h>
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
struct spis
     { char slovo[20];
       struct spis *v1; // v1 - указатель на предыдущую структуру
       struct spis *v2;}; // v2 - указатель на последующую структуру
void create(void); // создание
void list(spis *); // просмотр
void ypor(void); // удаление
struct spis *head,*tail; // указатели на начало и конец списка
main()
{
   clrscr();
   create();
   list(head); // просмотр с начала списка
   // list(tail); // просмотр с конца списка
   ypor();
   list(head);
   free(head);
}
void create(void)
{  spis *p,*pred;
   pred=NULL;
   do { p=(spis *)malloc(sizeof(spis));
        printf("Vvedite slovo : \n"); gets(p->slovo);
        p->v1=pred;
        if (pred != NULL)
          pred->v2=p;
        else
          head=p;
        pred=p;
        puts(" Zakonchit - <esc>");
      }
    while (getch()!=27);
    tail=p;
    tail->v2=NULL;
}
void list(spis *p)
{ if (p==head)
    while (p != NULL)
    { puts(p->slovo);
      p=p->v2;
    }
  else if (p==tail)
         while ( p!= NULL)
         { puts(p->slovo);
           p=p->v1;
         }
       else
           puts("Nevernyi adres ");
  getch();
}
void ypor(void)
{  spis *p,*temp;
   clrscr();
   printf("Ypor9dochivanie \n");
   p=head;
   while (p!=NULL)
   {if (strcmp(???,???)>0) // здесь я пытаюсь сравнивать для упорядочивания
---------------------
if(strcmp(v1,v2)>0)    //хочу примерно так сделать
  {
   strcpy(a,v1);
   strcpy(v1,v2);
   strcpy(v2,a);
  }                            //или есть более простые способы 
-------------------------
//---------------------------------------------------------------------------
и как Вывести после упорядочивания
В общем я не понимаю запись "->"
Сайын вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двусвязный список Work Group Паскаль, Turbo Pascal, PascalABC.NET 12 13.07.2010 01:44
двусвязный список Work Group Помощь студентам 0 24.05.2010 21:27
двусвязный список klykovka Помощь студентам 8 22.05.2010 18:58
Обратный алфавитный порядок ~GVS Помощь студентам 0 21.04.2010 15:54
Двусвязный список kruserg Паскаль, Turbo Pascal, PascalABC.NET 1 28.04.2009 10:37