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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ нахождения наименьшего нечетного делителя http://www.cyberforum.ru/cpp-beginners/thread111951.html
Здравтвуйте уважаемые форумчане! Подскажите пожалуйста какие у меня ошибки и недочёты... задача звучит так "Составить функцию для нахождения наименьшего нечетного натурального делителя к(к не равно 1) любого натурального числа n? (использовать подпрограммы!)". Буду очень признателен. #include <iostream.h> #include <string.h> #include <conio.h> #include <stdio.h>
C++ Шарики Помогите решить вот такую задачку: Несколько (N) шариков небольшого (радиуса r и массой m каждый) движутся внутри квадратной области размерами H*H , абсолютно упруго отскакивая от её стенок и друг от друга (все соударения считать центральными, то есть не приводящими к возникновению вращательного движения). Начальные скорости по модулю равны v и направлены случайным образом, в начальных... http://www.cyberforum.ru/cpp-beginners/thread111949.html
C++ Аппроксимация 4(Pi)
Один из быстрых методов подсчета числа Пи основывается на непрерывной дроби Пи = 3+1/(7+1/(15+1/(1+1/(292+1/(1+1/(1+1/(1+1/(2+1/(1+1/(3+1/(1+1/14+…))))))))))). Эта дробь называется правильной (знаменатели ==1) и подходящей, т.к. доказано, что любая дробь с меньшим знаменателем дает худшую аппроксимацию. В 1954 г. Лемер в этом разложении вычислил 100 членов. Общая формула в 1985 г. была...
вычислить произведение второй цифры C++
Постановка задачи:разработать программу реализующую операции целочисленной арифметики( Вычислить про изведение разности первых двух цифр цетырехзнацного числа и младшей цифры этого числа)
C++ Дано натуральное число.... Вычислить http://www.cyberforum.ru/cpp-beginners/thread111901.html
Дано натуральное число n. Вычислить n_ \ (-1)^k *(k+1) /_ ------------- k=0 k! Как то так... помогите плз!
C++ Файлы С++ как вывести на экран m последних строк из файла(с++) зарание спасибо)) подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
02.04.2010, 17:06     Односвязные списки
Цитата Сообщение от art_stalker Посмотреть сообщение
Но мне надо доработать свою программу
Ну это Вы уж сами как-нибудь...
Цитата Сообщение от art_stalker Посмотреть сообщение
сейчас изучаю односвязные списки и задание надо выполнить именно через них
А вот это пожалуйста, но на С, а то на С++ как-то при наличии STL такие велосипеды мастерить руки не поднимаются
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
 
typedef struct tagWRD {
    char *wrd;
    struct tagWRD *next;
} WRD;
 
WRD * newWrd(const char *str, WRD *last){
    WRD *w;
    if ( ( w = (WRD*)malloc(sizeof(WRD)) ) == NULL )
        return NULL;
    if ( ( w->wrd = strdup(str) ) == NULL )
        return NULL;
    w->next = NULL;
    
    if ( last )
        last->next = w;
    
    return w;
}
 
const WRD * findWord(const char *str, const WRD *w){
    while ( w != NULL && strcmp(str, w->wrd) )
        w = w->next;
    return w;
}
 
void clearList(WRD *w){
    WRD *t;
    while ( w ){
        t = w->next;
        if ( w->wrd )
            free(w->wrd);
        free(w);
        w = t;
    }
}
 
#define A_NAME "a.txt"
#define B_NAME "b.txt"
 
int main(void){
    FILE *fa, *fb;
    WRD *aHead, *aTail, *bHead, *bTail, *pWrd;
    char buf[BUFSIZ];
    
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    aHead = aTail = bHead = bTail = NULL;
    
    if ( ( fa = fopen(A_NAME, "r") ) == NULL ){
        fprintf(stderr, "Can't open file <%s> for input!\n", A_NAME);
        exit(1);
    }
    while ( fscanf(fa, "%s", buf) == 1 ){
        aTail = newWrd(buf, aTail);
        if ( !aHead )
            aHead = aTail;
    }
    if ( ferror(fa) ){
        fprintf(stderr, "Can't read from file <%s>\n", A_NAME);
        exit(1);
    }
    fclose(fa);
    if ( aHead == NULL ){
        fprintf(stderr, "No words from file <%s> readen!\n", A_NAME);
        exit(1);
    }
    
    
    if ( ( fb = fopen(B_NAME, "r") ) == NULL ){
        fprintf(stderr, "Can't open file <%s> for input!\n", B_NAME);
        exit(1);
    }
    while ( fscanf(fb, "%s", buf) == 1 ){
        bTail = newWrd(buf, bTail);
        if ( !bHead )
            bHead = bTail;
    }
    if ( ferror(fb) ){
        fprintf(stderr, "Can't read from file <%s>\n", B_NAME);
        exit(1);
    }
    fclose(fb);
    if ( bHead == NULL ){
        fprintf(stderr, "No words from file <%s> readen!\n", B_NAME);
        exit(1);
    }
    
    printf("\nЛист А:\n");
    for ( pWrd = aHead; pWrd != NULL; pWrd = pWrd->next )
        printf("%s\n", pWrd->wrd);
    
    printf("\nЛист B:\n");
    for ( pWrd = bHead; pWrd != NULL; pWrd = pWrd->next )
        printf("%s\n", pWrd->wrd);
    
    for ( pWrd = bHead; pWrd != NULL; pWrd = pWrd->next )
        if ( !findWord(pWrd->wrd, aHead) )
            aTail = newWrd(pWrd->wrd, aTail);
        
    printf("\nЛист А с уникальными словами из листа В:\n");
    for ( pWrd = aHead; pWrd != NULL; pWrd = pWrd->next )
        printf("%s\n", pWrd->wrd);
    
    clearList(aHead);
    clearList(bHead);
    
    exit(0);
}
Односвязные списки
 
Текущее время: 07:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru