БлогNot. Запись #304 (без заголовка)

Опять же, от нечего делать, в процессе изучения народом динамических структур данных на Си. Много таких примеров есть в этом архиве (около 5 мб, нужна работа 7). Ну а по данному листингу - вопросы в его начале, думаю, Вы легко на них ответите, раз уж зашли на эту страницу?

//Какая динамическая структура данных реализована в этом примере?
//До каких пор будут добавляться элементы?
//Как бы Вы реализовали удаление элементов?
#include <stdio.h>
#include <stdlib.h>
#include <alloc.h>
#include <values.h>

typedef struct list {
 int n;
 list *next;
};

list *add() {
 list *p=(list *)calloc(1,sizeof(list));
 p->n=random(MAXINT);
 p->next=NULL;
 return p;
}

void show (list *p) {
 while (p->next) {
  printf ("%d\t",p->n);
  p=p->next;
 }
 printf ("%d\t",p->n);
}

void main () {
 unsigned long f;
 list *s,*prev;
 unsigned long n=0;
 do {
  s=add();
  if (n>0) s->next=prev;
  prev=s;
  n++;
  f=(unsigned long) coreleft();
 } while (f>sizeof(list));
 show (s);
 printf ("\n%lu item(s)",n);
 fflush (stdin); getchar();
}

04.03.2010, 12:59 [9829 просмотров]


теги: c++ программирование алгоритм

К этой статье пока нет комментариев, Ваш будет первым