Artur_L
1

Однонаправленный список элементов (удвоить каждый элемент списка)

12.05.2013, 21:50. Показов 2576. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Сформировать однонаправленный список элементов типа char и написать программу следующих операций над ним: а) удвоить каждый элемент списка.
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.05.2013, 21:50
Ответы с готовыми решениями:

Линейно-однонаправленный список (удалить элемент списка по ключу)
Нужна помощь с методом удаление,должен удалить элемент списка по ключу,поиск приведён. #include...

Реализуйте однонаправленный список.Режим сортировки элементов списка без перестановки самих элементов
Реализуйте задание .В каждом из вариантов должно быть реализованы следующие режимы работы:...

Однонаправленный список из квадратов отрицательных элементов первого списка
Создать однонаправленный список действительных чисел, который может содержать как положительные так...

Однонаправленный список: получить сумму значений элементов списка, принадлежащих заданному отрезку
Ребятушки милые мои :) Помогите решить задачу !!! Даны натуральное число n и однонаправленный...

2
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
12.05.2013, 22:40 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
105
#include <iostream>
 
struct Onode
{
    char ch;
    Onode* next;
};
 
class SNode
{
    public:
        SNode()
        {
            pt_main = 0;
        }
 
        SNode(const char ch)
        {
            pt_main = 0;
            Onode* tmp = new Onode;
            tmp->ch = ch;
            tmp->next = pt_main;
            pt_main = tmp;
        }
 
        ~SNode();
 
        Onode* push_front(const char);
        void show();
        Onode* double_length();
 
        friend struct Onode;
 
    private:
        SNode(const SNode&);
        SNode& operator=(const SNode&);
        
        Onode* pt_main;
};
 
SNode::~SNode()
{
    if (pt_main) 
    {
        Onode* tmp = pt_main;
        while (tmp)
        {
            pt_main = pt_main->next;
            delete tmp; 
            tmp = pt_main;
        }
        pt_main = 0;
    }
}
 
Onode* SNode::push_front(const char ch)
{
    Onode* node = new Onode;
    node->ch = ch;
    node->next = pt_main;
    pt_main = node;
    return node;
}
 
void SNode::show()
{
    Onode* tmp = pt_main;
    unsigned cn = 0;
 
    while (tmp)
    {
        std::cout << ++cn << ": " << tmp->ch << std::endl;
        tmp = tmp->next;
    }
}
 
Onode* SNode::double_length()
{
    Onode* tmp = pt_main;
    char ch;
 
    while (tmp)
    {
        ch = tmp->ch;
        this->push_front(ch);
        tmp = tmp->next;
    }
    return pt_main;
}
 
int main()
{
    SNode obj('H');
    obj.push_front('e');
    obj.push_front('l');
    obj.push_front('l');
    obj.push_front('o');
    obj.push_front('!');
 
    obj.double_length();
 
    obj.show();
 
    return 0;
}
1
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
12.05.2013, 22:49 3
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#include <iostream>
#include <conio.h>
 
template <class T>
struct Node
{
    Node<T>* Next;
    T Data;
    Node();
explicit Node(T &_Data);
};
template <class T>
Node<T>::Node()
        : Next(NULL)
{   
}
template <class T>
Node<T>::Node(T &_Data)
        :Data(_Data), Next(NULL)
{   
}
 
template <class T>
class LinkedList
{
public:
    LinkedList();
    ~LinkedList();
    void Clear();
    void Doubling();
    void AddFront(T &_Data);
    void AddEnd (T &_Data);
    void PrintList();
 
private:
    Node<T> *Head,  *Curr;
};
 
template <class T>
void LinkedList<T>::Doubling()
{
    if( Head == NULL)
    {
       return;
    }
    Curr = Head;
    while (Curr)
    {
       Node<T> *newNode = new Node<T>(Curr->Data);
       newNode->Next = Curr->Next;
       Curr->Next = newNode;
       Curr = newNode->Next;
    }
}
 
template <class T>
void LinkedList<T>::PrintList()
{
    Curr = Head;
    while (Curr)
    {
        std::cout << Curr->Data << ' ';//<< std::endl;
       Curr = Curr->Next;
    }
}
 
template <class T>
void LinkedList<T>::AddFront(T &_Data)
{
    Node<T> *newNode = new Node<T>(_Data);
    if( Head == NULL)
    {
       Head = newNode;
    }
    else
    {
       newNode->Next = Head;
       Head = newNode;
    }   
}
 
template <class T>
void LinkedList<T>::AddEnd(T &_Data)
{
    Node<T> *newNode = new Node<T>(_Data);
    if( Head == NULL)
    {
       Head = newNode;
    }
    else
    {
        Curr = Head;
        while(Curr )
        {
          Curr = Curr ->Next;
        }
       Curr ->Next = newNode;
    }
}
template <class T>
void LinkedList<T>::Clear()
{
    Node<T> *node = NULL;
    Curr = Head;
    while(Curr)
    {
        node = Curr->Next;
        delete Curr;
        Curr = node;
    }
    Head = NULL;
}
template <class T>
LinkedList<T>::LinkedList()
    :Head(NULL), Curr(NULL)
{
}
template <class T>
LinkedList<T>::~LinkedList()
{
    Clear();
}
 
int main()
{
        LinkedList<char> list;
        for (char i = 'A'; i < 'G'; i++)
        list.AddFront(i);
        std::cout << "\nList :\n";
        list.PrintList();
        list.Doubling();
        std::cout << "\n\nNew list :\n";
        list.PrintList();
        list.Clear();
    getch();
}
1
12.05.2013, 22:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.05.2013, 22:49
Помогаю со студенческими работами здесь

Реализовать двухсвязный список. Каждый элемент списка может содержать один объект
Здравствуйте, мне нужно было реализовать двухсвязный список. Каждый элемент списка может содержать...

Добавить в список элемент после элемента с заданным инф.полем [Однонаправленный список]
Вообщем есть: Функция создание списка Функции вывода на экран Функция добавление элемента с...

Однонаправленный список. Операции: удалить элемент из заданной позиции, добавить элемент в заданную позицию,проверка на неравенство
Помогите. Есть одна написанная. Условия: Очередь. Операции: “+” добавить элемент ; “-“ удалить...

Кольцевой однонаправленный список, вывод списка на экран
Ввод и вывод списка. Ввод вроде работает, а вывод списка не работает, выводится ошибка в этой...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru