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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2011, 18:02   #1
Caged
Пользователь
 
Регистрация: 10.10.2011
Сообщений: 33
По умолчанию проблемы с Char-списком

В общем-то проблемы таковы, при компиляции, вместо слов выводятся цифры непонятные, и с помощью SetLocate это дело не исправляется...
это полбеды, самый трабл в том, что он вылетает после ввода 1х же данных(((

в общем вот код:
Код:
#include <cstdlib>
#include <iostream>

using namespace std;

struct Node{
  char data;
  Node* next;
  Node* prev;
};

Node* create (char d){
  Node* p = new Node;
  p->data = d;
  p->next=NULL;
  p->prev=NULL;
}            

void chain (Node* f, Node* p){
  Node* j = f->next;
  while (j->next != NULL) 
   j=j->next;
  j->next=p;
  p->prev=j;
}

void show (Node* f){
  Node* j = f->next;
  while (j!=NULL){
   cout<<j->data<<' ';
   j=j->next;
  }
  cout<<endl;
}

void swap (Node* a, Node* b){
 Node* tmp;
 tmp = a, a = b, b=tmp;
}           

bool check_it (Node* f, bool fl){
  Node* p1 = f->next;
  Node* p2 = p1->next;
  while (p2 != NULL)
   if ((p1->data)>(p2->data)){
    fl=1;
    return fl;
    break;
   }     
    else{
     fl = 0;
     p1=p1->next; 
     p2=p2->next;
    }
  if (fl == 0) return 0;   
}

void sort_out(Node* f){
  Node* p1 = f->next;
  Node* p2 = p1->next;
  if (p2 == NULL) 
   cout<<'You have only one element in your list!'<<endl;
   
  while (p2 != NULL)
    if ((p1->data)>(p2->data)){
    swap (p1, p2);
    p1=p1->next; 
    p2=p2->next;
  } 
} 

void free (Node* f){
  Node* prev = f;
  f=f->next;
  while (f!=NULL) {
   delete prev;
   prev=f;
   f=f->next;
  }
  delete prev;
}
   

int main(int argc, char *argv[])
{   
    cout<<'Enter the dimenshion of list:'<<endl;
    int n;
    cin>> n;
    cout << 'Enter ' << n << ' char-vars:' << endl;
    char d;
    Node* first; first->next=NULL; first->prev=NULL;
    for (int i=0; i<n; ++i){
     cin>>d;
     Node* edon = create(d);
     chain (first, edon);
    }
    show (first);
    bool flag = 1;
    while (flag == 1){
     sort_out (first);
     flag =check_it(first, flag);
    }
    show (first);
    free  (first);    
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
Caged вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы пеобразования Unicode to Char coNsept Общие вопросы C/C++ 5 01.09.2010 01:37
проблемы с Char и String в 2009 Delphi Kurai Помощь студентам 4 12.04.2010 14:56
Edit Показать/Скрыть пароль.. String и Char проблемы.. Человек_Борща Общие вопросы Delphi 2 10.04.2010 22:32
проблемы со связным списком с++ (Borland) adwaer Помощь студентам 0 15.04.2009 16:23
проблемы со связным списком с++ (Borland) adwaer Помощь студентам 0 15.04.2009 16:22