Списки.Как работает прогр.,срочно!

Тема в разделе "Общие вопросы по С и С++", создана пользователем grez, 12 июн 2007.

Статус темы:
Закрыта.
  1. grez

    grez Гость

    Помогите пожалуйста разобраться в программе,надо защитить лабу.Желательно каждую функцию... Особенно интересуют " ->"


    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    #include<time.h>

    struct list{// Описание струкутры list
    char data;// поле хранения символа
    struct list *link;//поле хранения адерса на следующий элемент
    };

    void create_list(list **);//описание прототипов функции создания списка
    void preview_list(list *);// просмотра
    void clear_memory(list *);//очистки памяти


    void main()
    { list *p1=NULL,*p2=NULL,*p=NULL;//объявление переменных
    list *t1,*t2,*q1,*q2,*tp;
    //*t1,t2,q1,q2 вспомогательные указатели
    //p1 указатель на список пропсных букв
    //P2 указатель на список строчных букв
    clrscr();

    create_list(&p);//вызов функции создания списка
    puts("Start");
    preview_list(p);//вызов функции просмотра

    tp=p;
    //Создание двух списков на основе исходного
    while (tp){
    if (tp->data<='Z'){
    t1=new(list); t1->data=tp->data; t1->link=NULL;
    if (p1==NULL) {p1=t1; q1=t1;}
    else {q1->link=t1; q1=t1;}
    }
    else{
    t2=new(list); t2->data=tp->data; t2->link=NULL;
    if (p2==NULL) {p2=t2; q2=t2;}
    else {q2->link=t2; q2=t2;}
    }
    tp=tp->link;
    }
    //Вывод списка отрицательных элементов
    puts("\nPropisnie");
    preview_list(p1);

    //Вывод списка положительных элементов
    puts("\nStrocnie");
    preview_list(p2);

    //Очистка памяти
    clear_memory(p);clear_memory(p1);clear_memory(p2);

    }

    void create_list(list **top)
    { int i,n;
    char ch;
    list *t,*q;
    printf("Vvedite kolicestvo elementov\n");
    printf("n="); scanf("%d",&n);
    //Создание первого элемента списка

    printf("Vvedite bukvi\n");
    printf("data=");ch=getche();puts("");
    t=new(list);
    t->data=ch;
    t->link=NULL;
    *top=t; q=t;

    //создние и добавление в список последующих элементов
    for(i=1; i<n; i++)
    {
    printf("data=");
    ch=getche();
    puts("");
    t=new(list); t->data=ch; t->link=NULL;
    q->link=t; q=t;

    }
    }

    void preview_list(list *top)
    {
    list *t;
    t=top;
    //Вывод списка на экран
    while (t)
    { printf("%c",t->data);
    t=t->link;
    }
    getch();
    }

    void clear_memory(list *top)// функция очистки памяти
    { list *t;

    t=top;
    while(t)
    {
    top=top->link;
    delete(t);
    t=top;
    }

    }
    Надо на основе заданного списка символов сформировать два других, помещая в первый из них строчные, а во второй пропистные из исходного списка
     
  2. mind

    mind Гость

    думаю, что никто вам объяснять ничего не будет, если вы сами ничего не знаете.

    могу только посоветовать полистать книжек каких...
    а также, правила форума глянуть еще разок.
     
Загрузка...
Похожие Темы - Списки Как работает
  1. gx6060
    Ответов:
    0
    Просмотров:
    281
  2. kingl
    Ответов:
    5
    Просмотров:
    2.252
  3. shilovec5377
    Ответов:
    0
    Просмотров:
    1.186
  4. lmike
    Ответов:
    1
    Просмотров:
    1.868
  5. DNT
    Ответов:
    8
    Просмотров:
    4.019
Статус темы:
Закрыта.

Поделиться этой страницей