Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

C ++ списък

Featured Replies

Здравейте имам задача с условието: Да се състави функция, която извежда на екрана най-често срещания елемент на списък с начален указател START. Имате ли някакви съвети как да направя функцията за най-често срещания елемент?

 

#include<iostream>
using namespace std;

struct elem {
    int key;
    elem* next;
    elem* prev;
}*start = NULL;

void add_b(int n);
void print_list();
void add_e(int n);
void add_bk(int n, int k);
void add_ak(int n, int k);
void invert_list();
int del_n(int n);
int maxlist();
int main()
{
    int ch, n, k;
    int br = 0;
    do
    {
        cout << "\n1.Add first";
        cout << "\n2.Add last";
        cout << "\n3.Add before k";
        cout << "\n4.Add after k";
        cout << "\n5.Delete n";
        cout << "\n6.Invert list";
        cout << "\n7.Print list";
        cout << "\n8.Max List";
        cout << "\nYour ch: ";
        cin >> ch;
        if (ch < 6)
        {
            cout << "\n n="; cin >> n;
        }
        if (ch == 3 || ch == 4) { cout << "\nk= "; cin >> k; }
        switch (ch)
        {
        case 1: {add_b(n); print_list(); break; }
        case 2: {add_e(n); print_list(); break; }
        case 3: {add_bk(n, k); print_list(); break; }
        case 4: {add_ak(n, k); print_list(); break; }
        case 5: {del_n(n); print_list(); break; }
        case 6: {invert_list(); print_list(); break; }
        case 7: {print_list(); break; }
        case 8: {maxlist(); break; }
        }
    } while (ch < 8 && ch>0);
}
void add_b(int n)
{
    elem* p = start;
    start = new elem;
    start->key = n;
    start->next = p;
    start->prev = NULL;
    if (p) p->prev = start;
}
void print_list()
{
    if (start)
    {
        cout << "\nList is: ";
        elem* p = start;
        while (p)
        {
            cout << p->key << "\t";
            p = p->next;
        }
    }
    else cout << "\n Empty list!";
}
void add_e(int n)
{
    elem* q = new elem;
    q->next = NULL;
    q->key = n;
    if (start == NULL) { start = q; q->prev = NULL; }
    else
    {
        elem* p = start;
        while (p->next)
            p = p->next;
        p->next = q;
        q->prev = p;
    }
}
void add_bk(int n, int k)
{
    elem* p = start;
    while (p->key != k && p->next)
        p = p->next;
    if (p->key == k)
    {
        elem* q = new elem;
        q->next = p->next;
        q->prev = p;
        if (p->next) p->next->prev = q;
        p->next = q;
        p->key = n;
        q->key = k;
    }
    else cout << "\nNo K";
}
void add_ak(int n, int k)
{
    elem* p = start;
    while (p->key != k && p->next)
        p = p->next;
    if (p->key == k)
    {
        elem* q = new elem;
        q->next = p->next;
        q->prev = p;
        if (p->next) p->next->prev = q;
        p->next = q;
        q->key = n;
    }
    else cout << "\nNo K";
}
void invert_list()
{
    elem* p = start, * buf = start;
    while (p)
    {
        buf = p->next;
        p->next = p->prev;
        if (buf == NULL) start = p;
        p = buf;
    }
}
int del_n(int n)
{
    if (start)
    {
        elem* p = start;
        while (p->key != n && p->next)
            p = p->next;
        if (p->key == n)
        {
            if (p->next) p->next->prev = p->prev;
            if (p->prev) p->prev->next = p->next;
            if (start->key == n) start = start->next;
            delete p;
            return 1;
        }
        else//if(pi>key==n)
        {
            cout << "\n Non";
            return 0;
        }
    }
    else {
        cout << "\n Empty list";
        return 0;
    }
}

Добавете отговор

Можете да публикувате отговор сега и да се регистрирате по-късно. Ако имате регистрация, влезте в профила си за да публикувате от него.

Гост
Публикацията ви съдържа термини, които не допускаме! Моля, редактирайте съдържанието си и премахнете подчертаните думи по-долу. Ако замените букви от думата със звездички или друго, за да заобиколите това предупреждение, профилът ви ще бъде блокиран и наказан!
Напишете отговор в тази тема...

Разглеждащи това в момента 0

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

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.