IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> Односвязные линейные списки, Си
18192123
сообщение 28.04.2007 20:57
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


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

Предполагаю заносить каждую строку в одно поле списка, но не знаю, как это сделать именно со строкой и сколько выделять памяти.

Сообщение отредактировано: 18192123 - 28.04.2007 20:57
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
18192123
сообщение 1.05.2007 19:19
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


попыталась написать ф-ю, которая формирует список (ф-я возвращает указатель на голову списка).
но насчёт занесения строки в информационное поле элемента списка - ???

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <alloc.h>
typedef struct list {
char number[50];
struct list *next;
} LIST;

LIST *read_list(LIST *lst)
{
LIST *p;
FILE *f;
f=fopen("rg.txt","r");
if (!feof(f))
{
lst=(LIST *)malloc(sizeof(LIST));
p=lst;
while (1)
{
fscanf(f,"%s",p->number[50]);
if (!feof(f))
{
p->next=(LIST *)malloc(sizeof(LIST));
p=p->next;
} else break;
}
p->next=NULL;
}
else printf("Файл пустой\n");
fclose(f);
return lst;
}



 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
18192123   Односвязные линейные списки   28.04.2007 20:57
volvo   После прочтения строки из файла, проверяй ее длину...   28.04.2007 21:00
18192123   хочу сделать функцию для расположения строк в поря...   1.05.2007 16:24
volvo   Ты какой путь выбираешь, сразу заносить очередной ...   1.05.2007 16:30
18192123   Ты какой путь выбираешь, сразу заносить очередной...   1.05.2007 17:26
volvo   Ну, тогда тебе и карты в руки... Опять изобретение...   1.05.2007 17:46
18192123   Ну, тогда тебе и карты в руки... Опять изобретени...   1.05.2007 17:49
18192123   попыталась написать ф-ю, которая формирует список ...   1.05.2007 19:19
volvo   #include <stdio.h> #include <conio.h> ...   1.05.2007 20:48
18192123   [code=cpp] strcpy(p -> number, s); ...   1.05.2007 21:56
volvo   Эта строка значит следующее: если lst == NULL (или...   1.05.2007 22:20
18192123   А как будет выглядеть удаление 5 нужных элементов?...   2.05.2007 10:17
volvo   А по какому признаку будешь удалять? Нужно... Про...   2.05.2007 11:35
18192123   А по какому признаку будешь удалять? удалять 5 ...   2.05.2007 13:25
volvo   Будет гораздо проще сделать наоборот: отсортироват...   2.05.2007 14:43
18192123   вот такие тестовые данные ввожу в исходный файл: q...   8.05.2007 21:33
volvo   Потому что из списка удаляется всего 5 элементов, ...   8.05.2007 21:47
18192123   Потому что из списка удаляется всего 5 элементов,...   8.05.2007 21:56
volvo   Так... Кажется мне удалось повторить проблему, кот...   8.05.2007 22:24
18192123   Так... Кажется мне удалось повторить проблему, ко...   8.05.2007 23:37
18192123   всё-таки хочу разобраться и таким вариантом : как,...   9.05.2007 11:02
volvo   С односвязным списком - только через извращение, к...   9.05.2007 11:27
18192123   Я хочу добиться того, чтобы после удаления 5 элеме...   9.05.2007 15:55
18192123   Я хочу добиться того, чтобы после удаления 5 элем...   9.05.2007 19:19
volvo   Потому, что если мы будем передавать просто указат...   9.05.2007 19:56
18192123   объясните пожалуйста некоторые моменты: 1) о сорти...   9.05.2007 22:21
volvo   Давай по порядку: 1) организацию циклов в С знаеш...   9.05.2007 23:23
18192123   volvo, большое спасибо! теперь всё поняла...   10.05.2007 0:06
18192123   Возник ещё вопрос: for(L = *first; L -> next; ...   14.05.2007 18:13
18192123   а можно сделать так, чтобы не строки копировать и...   15.05.2007 14:34
volvo   Можно, только код будет больше по размеру... Не за...   14.05.2007 22:52
18192123   Можно, только код будет больше по размеру... Не з...   14.05.2007 23:05
volvo   Ты сама просила :) void sort(LIST **first) { L...   15.05.2007 16:11
18192123   Ты сама просила :) Спасибо! Общую идею поня...   15.05.2007 17:58
18192123   LIST *prv_L, *prv_p; for(pr...   15.05.2007 18:43
volvo   Сорри, я больше в эту тему НЕ отвечаю! Я тебе ...   15.05.2007 18:22


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 24.07.2025 3:28
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"