Форум программистов, компьютерный форум CyberForum.ru

Работа с односвязным списком - C++

Восстановить пароль Регистрация
 
mcpetters
0 / 0 / 0
Регистрация: 24.05.2012
Сообщений: 11
27.11.2012, 00:24     Работа с односвязным списком #1
Дан односвязный список. Класс студент (фамилия группа). Сделать меню, т.е. удаление элемента из начала списка, добавление элемента в начало списка, просмотр результатов и написать функцию, которая удаляет четные записи. Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2012, 00:24     Работа с односвязным списком
Посмотрите здесь:

Задача с односвязным и двухсвязным списком (сортировка). C++
C++ Работа с односвязным списком (удаление четных элементов)
C++ Работа с односвязным линейным списком
Ошибки связанные с односвязным списком C++
C++ Полиморфизм в сочетании с односвязным списком
Реализация с односвязным списком C++
C++ Задача с односвязным списком
C++ Работа с односвязным списком

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
_Alexander
12 / 12 / 1
Регистрация: 05.11.2012
Сообщений: 49
27.11.2012, 15:06     Работа с односвязным списком #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
struct Student
{
    char * name;
    char * group;
    Student * next;
    Student(char * n, char * g)
    {
        name = new char[strlen(n)+1];
        group = new char[strlen(g)+1];
        strcpy(name,n);
        strcpy(group,g);
    }
    Student * operator=(const Student * s)
    {
        strcpy(this->name,s->name);
        strcpy(this->group,s->group);
    }
    ~Student()
    {
        delete name;
        delete group;
    }
};
class List
{
    int count;
    Student * head;
public:
    List()
    {
        count = 0;
        head = NULL;
    }
    void Add(char * name, char * group);//добавление элемента в начало списка
    void Print();//распечатка списка
    void DelC(int num);//удаление заданного элемента
    void Del();//удаление первого элемента списка
    void DelN();//удаление четных элементов списка
    
 
};
void List::Add(char * name, char * group)
{
    Student * st = new Student(name,group);
 
        st->next = head;
        head = st;
        count++;
}
void List::Print()
{
    Student * st = head;
    while(st!=0)
    {
        cout<<st->name<<"\t"<<st->group<<endl;
        st = st->next;
    }
}
void List::Del()
{
    Student * st = head;
    head = head->next;
    st->~Student();
    count--;
}
void List::DelC(int num)
{
    Student * st = head;
    Student * temp;
    Student * prev;
    int flag = 0;
    while(st!=0)
    {
        if(num == flag)
        {
            prev->next = st->next;
            st->~Student();
            count--;
        }
    
        prev = st;
        st = st->next;
        flag++;
    }
    
    }
void List::DelN()
    {
        Student * st = head;
        Student * prev = NULL;
        int fl = 0;
        while(st!=0)
        {
            if(fl%2 != 0&&fl != 0)
            {
                prev->next = st->next;
                st->~Student();
                count--;
            }
            prev = st;
            st = st->next;
            fl++;
        }
}
можно как-то так)
благодарен, если укажите на ошибки
Yandex
Объявления
27.11.2012, 15:06     Работа с односвязным списком
Ответ Создать тему
Опции темы

Текущее время: 21:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru