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

Линейный однонаправленный список - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Даны два натуральных числа a, b. Найти разность и произведение суммы цифр этих чисел http://www.cyberforum.ru/cpp-beginners/thread646898.html
Даны два натуральных числа a, b. Найти разность и произведение суммы цифр этих чисел. Вычисление суммы цифр числа оформить в виде функции.
C++ Подскажите что означает /= Начал читать книгу для начинающих по с++, в одном из примеров встретил код вида Mxx/=N; Mxy/=N; My/=N; Mx/=N; Наверное, /= что-то настолько очевидное, что авторы забыли про него упоминуть. http://www.cyberforum.ru/cpp-beginners/thread646894.html
Хеш строки C++
Как можно получить хеш строки на C++ с использованием только стандартных библиотек? Думал так: unsigned long long hash(char *str,size_t size) { int seed = 31 //abcd... unsigned long long result = 0; for (size_t idx=0;idx<size;idx++) { result = result + pow(double(seed),double(i))*s; } return result; }
Проверка типа (typeid) C++
Подскажите пожалуйста как можно правильно реализовать такую вещь: если тип переменной и == int то.... нагуглил функцию: typeid(i).name(); которая выводит тип переменной, написал: #include "stdafx.h" #include <conio.h> #include <typeinfo.h> #include <iostream>
C++ Как проверить правильно ли ты создал дистрактор http://www.cyberforum.ru/cpp-beginners/thread646825.html
сабжж ???
C++ Как проверить, правильно ли создан copy-конструктор? сабжж ?? подробнее

Показать сообщение отдельно
Diabolisk
30 / 2 / 0
Регистрация: 26.04.2012
Сообщений: 51

Линейный однонаправленный список - C++

05.09.2012, 01:59. Просмотров 1514. Ответов 19
Метки (Все метки)

всем доброго времени не получается создать функцию слияния двух списков методом расчесок( допустим первый список 1 3 5 второй 2 4 6 а после слияния получилось 1 2 3 4 5 6) вот код программы посмотрите пожалуйста и подскажите что не так?
функция слияние называется сливание

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
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
typedef struct Node
        {
          //int ch;
          int it;
          struct Node *next;
        };
Node *fuck;
Node *s1;
Node *last_s1;
Node *s2;
Node *last_s2;
 
int openfileandread(Node **s, Node **s_last)
{
   FILE *f1;
 
   char filename[40];
   printf("Write file open for read Note  ");
   scanf("\t%s", &filename);
   f1 = fopen(filename, "r");
 
   Node *First = (Node*)malloc(sizeof(Node));
 
    if (!feof(f1))
    fscanf(f1, "%d", //&(First -> ch),
     &(First -> it));
    First -> next = NULL;
 
    *s = First;
 
    Node *Last;
    Last = First;
 
    while (!feof(f1))
 {
    Node *Next = (Node*)malloc(sizeof(Node));
    fscanf(f1, "%d", //&(Next -> ch),
    &(Next -> it));
    Last -> next = Next;
    Last = Next;
}
   Last -> next = NULL;
   *s_last = Last;
 
   fclose(f1);
   return 0;
}
 
void printNode(Node *s)
{
    Node *Curr;
    Curr = s;
    while (Curr != NULL)
    {
    printf("\t%d", //Curr -> ch,
    Curr -> it);
    Curr = Curr -> next;
    }
    printf("\n");
}
 
void slivanie(Node *s1, Node  *s2) ///Node *last_s1, Node *last_s2)
{    while(s1->next!=NULL){
    s1->next=s2;
    s2=s2->next;
    s1=s1->next;
    s1=s1->next;}}
 
 
 
 
 
 
 
 
 
    //last_s1 -> next = s2;
    //printNode(s1);
 
 
int main()
{
    openfileandread(&s1, &last_s1);
    openfileandread(&s2, &last_s2);
    printNode(s1);
    printNode(s2);
 
    slivanie(s1, s2);
    printNode(fuck);
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru