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

Очередь. Удалить каждое последующее вхождение символа если он встречался до этого. - C++

Восстановить пароль Регистрация
 
Priorzivil
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 11
11.03.2013, 18:07     Очередь. Удалить каждое последующее вхождение символа если он встречался до этого. #1
Народ меня тут 11 задач мне нужно их подробно прокомментировать какая строчка что делает(пример первая задача) помогите плиз кому не сложно хотя бы по одной задачке буду очень благодарен

задача 6 очередь
В файле input.txt содержатся символы создать из этих символов список. Удалить каждое последующее вхождение символа если он встречался до этого.

input
Код
( ( ( крат крит
Код программы
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
#include <iostream>
#include <fstream>
using namespace std;
 
class queue
{
    struct elem
    {
        char inf;
        elem *next;
        elem (unsigned char x, elem *p):inf(x), next(p){};
    };
    elem *head, *tail;
public:
    queue(){head=0; tail=0;}
    bool empty()
    {
        return tail==0;
    }
    void insert(unsigned char value)
    {
        elem *newptr=new elem(value, 0);
        if(head==0&&tail==0)
            head=tail=newptr;
        else
        {
            tail->next=newptr;
            tail=newptr;
        }
        cout<<head->inf<<' '<<tail->inf<<endl;
    }
    char take()
    {       //if(head==0)
            //tail=0;
        elem *r=head;
        unsigned char i=r->inf;
        head=r->next;
        if(head==0)
            tail=0;
        delete r;
        return i;
    }
 
};
 
int main()
{
    queue t;
    unsigned char n;
    int a[255];
    ifstream in("input.txt");
    ofstream out("output.txt");
    for(int i=0;i<n; i++)
    {
        a[i]=0;
    }
    queue m;
    while(in>>n)
    {
        t.insert(n);
    }
    unsigned char j;
    if(t.empty()==true) out<<"net elementov v ocheredy t"<<endl;
    else
    { out<<"elemety ocheredy t"<<endl;
    while(!t.empty())
    {
        j=t.take();
        out<<j<<' ';
        if(a[j]==j)
        {
            m.insert(j);
            //a[j]=" ";
        }
    }
    }
    out<<endl;
    if(m.empty()==true) out<<"net elementov v ocheredy m";
    else
    { out<<"elementy ocheredy m"<<endl;
        while(!m.empty())
        {
            out<<m.take()<<" ";
        }
    }
    system("PAUSE");
    return 0;
}

Output:
Код
elemety ocheredy t
( ( ( к р а т к р и т 
elementy ocheredy m
( к р а т и
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2013, 18:07     Очередь. Удалить каждое последующее вхождение символа если он встречался до этого.
Посмотрите здесь:

C++ Из файла ввести слово и найти в нём последнее вхождение заданного символа, если он есть
C++ Удалить из строки каждое вхождение подстроки
C++ Ввести строку символов, если ее длина четная, удалить 2 первых и 2 последних символа.
Удвоить каждое вхождение символа С в строку S C++
Удвоить каждое вхождение символа в строке C++
В предложении удалить первое вхождение “w”, если такое есть C++
C++ Определить последнее вхождение символа “р” в строке и вывести строку, начиная с первого символа и до последнего “р” в строке
C++ Дан символ C и строка S .Удвоить каждое вхождение символа С в строку S

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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