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

> Внимание!

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

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

> Списки, на Си
сообщение
Сообщение #1


Гость






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

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


Гость






Так вот сложности с понимнием. Значит вот написал примерно для этого задания зацените[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;
}




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

Сообщений в этой теме


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

 





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