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

Односвязный список - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задачи на матрицы и структуры http://www.cyberforum.ru/cpp-beginners/thread34707.html
4. Дана матрица размера M  N. Вывести ее элементы, расположенные в столбцах с нечетными номерами (1, 3, …). Вывод элементов производить по столбцам, условный оператор не использовать. 7. Дана...
C++ создания функции my_printf() помогите создать функцию my_printf(), типа printf(). Принцип действия тот же, но чтоб при визове my_printf() необходимое виводилось например красним цветом и шрифтом-курсивом. Если кто может помочь,... http://www.cyberforum.ru/cpp-beginners/thread34660.html
C++ Visual Studio, приложения не запускаются
Есть одна проблема. Я раньше творил с CodeBlocks, а теперь решил попробовать в Visual Studio. Но ни одна моя прога не запускается пишет сообщение что не нашел путь d:\debug\проэкт\.exe Я так...
Поменять соседние слова в строке местами C++
Доброе всем время суток. Есть такая задачка. Вроде несложная, но написать что-то не получается. Поменять слова в сообщении по принципу: второе с первым, четвёртое с третьим и т. д. #include...
C++ матрица http://www.cyberforum.ru/cpp-beginners/thread34646.html
Задание: Для заданной матрицы размером 8 на 8 найти такие k, что k-ая строка матрицы совпадет с k-м столбцом. Найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный...
C++ поиск слова в строке Всем привет! задача нужно найти слово в строке например: char str1="hello world"; char str2="world"; if(str1==str2) cout<<"Слово найдено"); else cout<<"Слово не найдено"); подробнее

Показать сообщение отдельно
kitten
0 / 0 / 0
Регистрация: 14.12.2008
Сообщений: 21

Односвязный список - C++

17.05.2009, 23:50. Просмотров 1001. Ответов 4
Метки (Все метки)

Доброй ночи!
Вроде все написала правильно, прога должна читать из файла KR8+.txt и записывать один элемент в KR8.txt в конец списка... но этого не происходит! подскажите, пожалуйста, почему?

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
137
138
139
140
141
142
143
144
145
146
147
148
#include <stdio.h>
#include <stdlib.h>
 
 
class List;
void work();
 
 
class List
{
    private:
    List* head;
    List* end;
    List* next;
    int size;
    int info;
 
    public:
    List(List*p)
    {
        p->head = NULL;
        p->next = NULL;
        size=0;
    }
 
    ~List()
    {
        if (hasHead())
            delete head;
 
            if(hasNext())
             delete next;
    }
    bool hasHead()
    {
        return head != NULL;
    }
 
        bool hasNext()
    {
        return next != NULL;
    }
 
    void read (List **head, List **end)
    {
       FILE *file = fopen("KR8+.txt","rt");
        List **p, *q;
        p = head;
        q = NULL;
        while (!feof(file))
        {
            *p = (List *)malloc(sizeof(List));
            fscanf (file, "%d", &((*p)->info));
            p = &((*p)->next);//адрес
            q=*p;
        }
        *p = NULL;
        *end = q;
    }
 
    void rprint (List *head)
    {
        FILE* file = fopen("KR8.txt","rt");
        List *p;
        p = head;
        while (!feof(file))
        {
            fscanf(file, "%d\n", &p);
            printf("%d\n", p->info);
            p = p->next;
        }
    }
 
    void wprint(List *p)
    {
        FILE *file = fopen("KR8.txt","at+");
        i=0;
        fprintf(file,"%d", p);
        i++;
        fclose(file);
    }
 
    // добавить в конец
    void add(List *p, List *q)
    {
        //FILE *file;
        read(&head, &end);
        rprint (head);
        if(!isEmpty(p))
        {
            head=q;
            q->next=NULL;
        }
        else
        {
        p->next=q;
        q->next=NULL;
        }
        p=q;
    }
 
    // получить количество
    int count(const List*p)
    {
        return p->size;
    }
 
    // пустой ли список
    bool isEmpty(List *p)
    {
            return p->size==0;
    }
 
};
 
void work()
{
    int n;
    List*p, *q;
    while(true)
    {
        printf("MENU\n");
        scanf("%d", &n);
        if(n==1)
        {
            p->isEmpty(p);
            if(true)
            {
                printf("List is Empty\n");
            }
            else printf("List is not Empty\n");
        }
        if(n==2)
        {
            p->add(p,q);
        }
        if(n==0)
        {
            break;
        }
    }
}
 
int main()
{
    work();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru