Полезное для программистов:

Фриланс
Новости
Статьи
   
Рубрики:

Error. Page cannot be displayed. Please contact your service provider for more details. (26)


Список

Поиск:
Код

//////////////////////////////////////////////////////////////////////////////
//
//  Dynamic structures (list)
//  (c) Johna Smith, 1996
//
//  Method description:
//    * -> * -> * -> nil
//    A    B    C
//
//////////////////////////////////////////////////////////////////////////////

#include <stdio.h>
#include <alloc.h>

struct item
{
  int element;
  item *next;
};

item *list; // base element of the list
item *p; // current pointer

// this function adds an element to the end of list
void Add(int element)
{
  p->next=(item*)malloc(sizeof(item));
  p=p->next;
  p->element=element;
  p->next=NULL;
}

// this function removes element from list
// after element pointed by i
void Remove(item* i)
{
  item *tmp;

  if (i->next!=NULL)
  {
    tmp=i->next;
    i->next=(i->next)->next;
    free(tmp);
  }
}

// this function inserts element after
// element pointed by i
void Insert(item *i, int element)
{
  item *tmp;

  tmp=(item*)malloc(sizeof(item));
  tmp->element=element;
  tmp->next=i->next;
  i->next=tmp;
}

// this function searches element in the list
item* Search(int element)
{
  item *i,*result=NULL;
  char found=0;

  i=list->next;
  while (i!=NULL && found==0)
  {
    if (i->element==element)
    {
      found=1;
      result=i;
    }
    i=i->next;
  }

  return result;
}

// this function prints the list
void printlist(void)
{
  item *p;

  p=list->next;
  while (p!=NULL)
  {
    printf("%d ",p->element);
    p=p->next;
  }
}

void main(void)
{
  // creating first element of the list
  list=(item*)malloc(sizeof(item));
  list->element=0;
  list->next=NULL;
  p=list;

  printf("Adding elements 1,2 & 4n");
  Add(1);
  Add(2);
  Add(4);
  printlist();
  printf("nSearching element 2n");
  item *tmp=Search(2);
  printf("Inserting element 3 after itn");
  Insert(tmp,3);
  printlist();
  printf("nDeleting element 1n");
  Remove(list);
  printlist();

  // destroying list
  while (list->next!=NULL) Remove(list);
  free(list);
}
Сайт: forum.vingrad.ru






Просмотров: 2183

 

 

Новые статьи:


Популярные:
  1. Как сделать цикличным проигрывание MIDI-файла?
  2. Создание AVI файла из рисунков
  3. Как устройство "отключить в данной конфигурации"?
  4. Kто в данный момент присоединен через Сеть?
  5. Как узнать количество доступной памяти?
  6. Как реализовать в RichEdit разноцветный текст?
  7. Как скрыть свое приложение от ProcessViewer
  8. Как программно нажать/скрыть/показ кнопку "Start"?
  9. Модуль работы с ресурсами в PE файлах
10. Функции вызова диалоговых окон выбора
11. Проверка граматики средствами Word'а из Delphi.
12. Модуль для упрощенного вызова сообщений
13. Функции для записи и чтение своих данных в, ЕХЕ- файле
14. Рекурсивный просмотр директорий
15. Network Traffic Monitor
16. Разные модули
17. Универсальная функция для обращения к любым экспортируем функциям DLL
18. Библиотека от VladS
19. Протектор для UPX'а
20. Еще об ICQ, сообщения по контакт листу?
21. Использование открытых интерфейсов
22. Теория и практика использования RTTI
23. Работа с TApplication
24. Примеры использования Drag and Drop для различных визуальных компонентов
25. Что такое порт? Правила для работы с портами
26. Симфония на клавиатуре
27. Загрузка DLL
28. Исправление автоинкремента
29. Взаимодействие с чужими окнами
30. Проверить дубляжи в столбце


 

 

 
 
На главную