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

> Внимание!

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

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Списки, на Си
сообщение
Сообщение #1


Гость






Здравствуйте.
Прошу помощи в решении задачи следующего типа. Дан файл в нём записаны строки, надо содержимое файла разбить на слова и записать и каждое слово за писать в послеодовательность списокв, т.е. одно слово в один список... списки идут друг за другом. потом из этих списко вывести собственно эти слова.

Заранее благодарю
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Друзья, очень прошу обратьи внимание на мою задачу... горю с ней...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Очень прошу помочь....
вот что то пытался сделать да толкьо даже разбиение то толковое не вышло...помоигет плз..


#include <stdio.h>
#include "filework.h"

int main(int argc, char *argv[])
{
FILE *stream;
char s[256],g[256];
int i=0;
if( (stream = fopen( "input.txt", "r" )) != NULL )
{
while(!feof(stream))
{
if( fgets( s, 256, stream ) == NULL)
break;
else
while(s[i])
{
while(s[i]!=0 && !isalnum(s[i]))
i++;
if (s[i] == 0)
break;
while(s[i]!=0 && isalnum(s[i]))
{
g[i]=s[i];
i++;
}
printf("%s",g);
i=0;
}
}
fclose(stream);
}
return 0;




 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Ну, тебе же уже написали:
Работа с файлами и списками
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Так вот сложности с понимнием. Значит вот написал примерно для этого задания зацените[quote]


#ifndef hea_h
#define hea_h
struct Words{
Words *next;
char *str;
};
Words *mk_list(Words *head, char *masstr, int size);
void Scan(Words *head);
void Del(Words *head);
#endif


____________________________


#include <stdio.h>
#include <stdlib.h>
#include "head6.h"

Words *mk_list(Words *head, char *masstr, int size)
{
int i;
char *t;
Words *el;
t=(char*)malloc(size+1);

for (i=0;i<size;i++)
t[i]=masstr[i];
t[i]=0;

el=(Words*)malloc(sizeof(Words));
el->str = t;
el->next = head;

return el;
}
void Scan(Words *head)
{
Words *p=head;
while (p!=NULL)
{
printf("%s\n",p->str);
p=p->next;
}
}
void Del(Words *head)
{
Words *p;
while (head!=NULL)
{
p=head->next;
free(head);
head=p;
}
}


_______________________________________


#define fget(f,x) fread(&x,sizeof(x),1,f)
#define fput(f,x) fwrite(&x,sizeof(x),1,f)
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include "hea.h"
#define BUFLEN 1024

int main(int argc, char *argv[])
{
FILE *fi;
int flag,i,start;
Words *head = NULL;
Words *p;
char str[BUFLEN];

fi = fopen( (argc<2) ? "H:/1.txt" : argv[1], "rt" );

if (fi == NULL) printf("Not found the file");
flag=0;
while (!feof(fi))
{
str[0] = 0;
fgets(str,BUFLEN,fi);
str[BUFLEN-1]=0;
i=0;
while (str[i]!=0)
{
while(str[i] && isspace(str[i]))
i++;

start=i;
while(str[i] && !isspace(str[i]))
i++;

if (start<i)
head=mk_list(head, &str[start], i-start);
}
}
Scan(head);
if (fi)
fclose(fi);
Del(head);
return 0;
}




Ну вот собственно и всё. единственно что теперь надо сделать тоже самое только для бинарного дерева, т.е. слвоа записываются в бинарное дерево.... во ткак преоьбразовать я не понимаю.....
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Ну я примерно чёт понял, но таки не всё получается, вот что понял то выше приведено и работает, а вот как зделать дерево не знаю но просто не получается и всё.... помогите моий исходник для списка преобразовать к дереву.... Очень прошу
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






И про деревья тебе тоже выкладывали:
Бинарное дерево поиска

Ты нормальным языком написать можешь, что именно тебе сделать надо? С такой постановкой:
Цитата
каждое слово за писать в послеодовательность списокв, т.е. одно слово в один список
далеко не уедешь... Так каждое слово - в ПОСЛЕДОВАТЕЛЬНОСТЬ или в ОДИН список?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Надо сделать так что бы каждое слово было в одном списке, а сами списки были реализованы в виде бинврного дерева поиска (збалансированного) вот, т.е.

есть в файле такая тема:

qwer rty
zxcvbn
asdyui uio

ну вот скажем вверх дерева
zxcvbn
qwer asdyui
rty uio

ну вот это и надо, т.е. дерево из слов каждый элемент дерева содержит по одному слову, и оно организовано так что бы быть збалансированным
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Код
Извеняюсь в предыдущем посте не понять  пример... ибо всё в одну строчку, вот он:

                         ну вот скажем вверх дерева
                                      zxcvbn
                       qwer                        asdyui
               rty                                                 uio
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 27.09.2020 10:42
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name