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

Создание односвязного списка, инвертирование его. Без СТЛ - C++

Восстановить пароль Регистрация
 
weightless
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 103
11.09.2013, 17:42     Создание односвязного списка, инвертирование его. Без СТЛ #1
Здравствуйте! Требуется создать односвязный список из текстового файла
Кликните здесь для просмотра всего текста
12.12.2034 Иван Палыч 12344
3.05.2013 Федор Степаныч 435236
10.07.2013 Александр Андреевич 463543
05.06.2013 Татьяна Петровна 123134

Строки считать как узлы, необходимо провести поиск по узлам( в случае указания номера узла, вывести строчку на экран), инвертировать список. В программе использовать pop() и push().

Заранее большое спасибо!

Здесь создал класс:
Кликните здесь для просмотра всего текста
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
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <conio.h>
 
class TNode {
public:
    char * Caption;
    TNode * next;
TNode(char* a = "") {
                    if (a) {
                            Caption = new char[strlen(a) + 1];
                            strcpy(Caption, a);
                           }
                    else {
                            Caption = new char[20];
                            strcpy(Caption, "Node Unnamed");
                         }
                        }
 
~TNode() {delete[]Caption;}
};
 
class myList {
public:
    TNode *Head;
    TNode * Add(char *);
    myList();
    ~myList();
};
 
myList::~myList() {
    while (Head) {
        TNode * node = Head;
        Head = Head->next;
        delete node;
        }
}
 
TNode * myList::Add(char * a)
{
    TNode * newNode = new TNode(a);
    newNode->next = Head;
    Head = newNode;
    return newNode;
}
 
myList::myList() {
    Head = NULL;
}
 
class TStack : public myList {
private:
    TNode * Add(char *);
public:
    TStack() : myList() {}
 
    void push(char *s)
       {
        myList::Add(s);
       }
 
    TNode *pop() {
        TNode * res = Head;
if (res)
        {
        Head = Head->next;
        res->next = NULL;
        }
return res;
                 }
};


Дальше самое сложное... в функции main надо как считать по словам строчки. и потом заполнить лист:

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
int main(int argc, char* argv[]) {
system("chcp 1251");
 
char buf[80];
char *dr;
char * name;
char * numb;
FILE *fp = fopen("C:\\spisok.txt","rt");
fseek(fp,0,SEEK_SET);
while()
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.09.2013, 17:42     Создание односвязного списка, инвертирование его. Без СТЛ
Посмотрите здесь:

C++ Создание односвязного списка из строки, полученной в файле
C++ Реализация кольцевого списка на СТЛ
C++ шаблон односвязного списка
Из односвязного списка в двусвязный C++
Создание односвязного циклического списка C++
Подключение файла с текстом и его инвертирование C++
C++ Создание односвязного списка
Удаление элементов из односвязного списка списка C++

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

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

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