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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
weightless
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 103
#1

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

11.09.2013, 17:42. Просмотров 261. Ответов 0
Метки нет (Все метки)

Здравствуйте! Требуется создать односвязный список из текстового файла
Кликните здесь для просмотра всего текста
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++ Создание односвязного списка
Печать односвязного списка C++
Создание и вывод односвязного списка (выводится только первый элемент) C++
C++ Сортировка односвязного списка
C++ Идеология односвязного списка

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

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

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