Премини към съдържанието

Христо Ив

Потребител
  • Публикации

    5
  • Регистрация

  • Последно онлайн

Харесвания

0 Неутрална репутация

Всичко за Христо Ив

  • Титла
    Новобранец
  1. Сортиране на дек

    Aз се пробвах с pop i push, но нещо не се получи #include<iostream> using namespace std; struct elem { int key; elem *next; }*l = NULL, *r = NULL,*l1=NULL,*r1=NULL; void push_l(int n){ elem *p = l; l = new elem; l->key = n; l->next = p; if (r == NULL) r = l; } void push_r1(int n){ elem *p = r1; r1 = new elem; r1->key = n; r1->next = NULL; if (p) p->next = r1; else l = r1; } int pop_l1(int &n){ if (l1) { n = l1->key; elem *p = l1; l1 = l1->next; delete p; if (l1 == NULL) r1 = NULL; return 1; } else return 0; } void push_r(int n){ elem *p = r; r = new elem; r->key = n; r->next = NULL; if (p) p->next = r; else l = r; } int pop_l(int &n){ if (l) { n = l->key; elem *p = l; l = l->next; delete p; if (l == NULL) r = NULL; return 1; } else return 0; } int pop_r(int &n){ if (r) { n = r->key; if (l == r) { l = r = NULL; delete r; } else{ elem *p = l; while (p->next != r) p = p->next; p->next = NULL; delete r; r = p; } return 1; } else return 0; } void main(){ int n; int temp; int buff; do{ cout << "\nn= "; cin >> n; if (n) { if (n > 0) push_r1(n); else push_l(n); } } while (n); int v; elem *old_r = r; while (l) { pop_l(v); while (l != old_r) { pop_l(temp); if (v > temp) { buff = v; v = temp; temp = buff; push_r1(temp); } } push_r1(v); } cout << "\nDek: "; while (pop_l1(n)) cout << n << "\t"; }
  2. Сортиране на дек

    Ясно мерси за обяснението
  3. Сортиране на дек

    Благодаря!! А така аз както съм се пробвал със pop() и push() възможно ли е да стане?
  4. Здравейте, Искам да питам за следната програма: Имам да сортирам дек от числа, като използвам метода чрез пряка селекция, но без да използвам масиви. Опитах по най-простия начин да въвеждам числа от клавиатурата като ги записвам във дек и след това да ги сортирам. Следвах алгоритъма за масив, но не се получава. Може ли някой да ми даде насоки, как точно става. Благодаря предварително! #include<iostream> using namespace std; struct elem { int key; elem *next; }*l = NULL, *r = NULL; void push_l(int n){ elem *p = l; l = new elem; l->key = n; l->next = p; if (r == NULL) r = l; } void push_r(int n){ elem *p = r; r = new elem; r->key = n; r->next = NULL; if (p) p->next = r; else l = r; } int pop_l(int &n){ if (l) { n = l->key; elem *p = l; l = l->next; delete p; if (l == NULL) r = NULL; return 1; } else return 0; } int pop_r(int &n){ if (r) { n = r->key; if (l == r) { l = r = NULL; delete r; } else{ elem *p = l; while (p->next != r) p = p->next; p->next = NULL; delete r; r = p; } return 1; } else return 0; } void main(){ int n; int temp; int v; int buff = 0; do{ cout << "\nn= "; cin >> n; if (n) { if (n > 0) push_r(n); else push_l(n); } } while (n); int max; elem *old_r = r; while (l!=old_r) { pop_l(max); while (l != old_r) { pop_l(temp); if (max > temp) { buff = max; max = temp; temp = buff; push_r(temp); } } } cout << "\nDek: "; while (pop_l(n)) cout << n << "\t"; }
  • Разглеждащи в момента   0 потребители

    Няма регистрирани потребители разглеждащи тази страница.

×

Информация

Този сайт използва бисквитки (cookies), за най-доброто потребителско изживяване. С използването му, вие приемате нашите Условия за ползване.