Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
wadkez212
0 / 0 / 1
Регистрация: 20.11.2014
Сообщений: 16
1

Односвязный список, который считывает данные из файла, переделать на двусвязный

23.04.2015, 23:00. Просмотров 263. Ответов 0
Метки нет (Все метки)

Дан односвязный список(работающий как стек)
считывает данные из файла и выводит слова в обратном порядке
Нужно сделать из этого двусвязный список. Не знаю как( Пацаны помогите пожалуйста
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
 typedef struct listElement {
        char *s;                  
        struct listElement *next;   
};
 
 
struct listElement *tos=NULL;  
void push(char *s)  
{
 
        char *p;      //указатель на слово в файле
        struct listElement *q;
    if ((p=malloc((strlen(s)+1)*sizeof(char))) == NULL) {  
                printf("Не хватает памяти. Пока!\n");
                exit(1);
        }
        strcpy(p, s);      //
    if ((q=malloc(sizeof(struct listElement))) == NULL) {
                printf("Нехватка памяти. Пока!\n");
                exit(1);
        }
        q->s = p;
        q->next = tos; 
        tos = q;   
} 
 
char *pop(void)  
{
        char *p;                   
        struct listElement *q;
 
        if (tos == NULL)      
                return NULL;
        q = tos;       
    tos = tos->next;
        p = q->s;   
 
        return p;   
}
 
 
 
int main()
{
    FILE *fp = fopen("input.txt", "r");
    char buf[10];
 
        while( fscanf(fp, "%s", buf) != EOF ) 
        {
            printf("%s\n", &buf); 
            push(buf);             
        }
 
       fclose(fp);
       printf ("\nAfter reversing:\n\n");
       char *p;
       while ((p=pop()) != NULL) {    
                printf("%s\n", p);
 
        }
 
    system("PAUSE");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2015, 23:00
Ответы с готовыми решениями:

Переделать двусвязный список в односвязный список
//--------------------------------------------------------------------------- ...

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

Создать двусвязный список из файла
Здравствуйте! Мне нужно создать двусвязный список из файла на Си(не C++). В...

Односвязный список: считывание значений из файла
Доброго времени суток! Пожалуйста, подскажите в чем может быть проблема. Есть...

Считать из текстового файла предложения в односвязный список
Считать из текстового файла предложения в односвязный список. Переставить в...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2015, 23:00

Возможно ли как-то переделать односвязный список в двусвязный?
Собственно вопрос в названии. Возможно ли переделать односвязный список в...

Заменить массив структур на односвязный список, и на двусвязный список
Взять текст задания и заменить массив структур на односвязный список, и на...

Переделать двусвязный список в двусвязный кольцевой
Здравствуйте, у меня єсть двусвязный список однако он не кольцевой! как это...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru