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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Vladislav_97
0 / 0 / 0
Регистрация: 05.11.2015
Сообщений: 30
#1

Связные списки.Обмен первыми половинами двух связных списков - C++

18.03.2016, 11:20. Просмотров 130. Ответов 0
Метки нет (Все метки)

Помогите пожалуйста написать программу обмены первыми половинами двух связных списков.Очень надо сделать данную работу,а у мне что-то в голову не придет как это осуществить.Только получилось задать два двусвязных списка.
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
#include "stdafx.h"
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
typedef struct tag_lib1{
    char title[100];
    char author[100];
    int year;
}LIB1;
typedef struct tag_lib2{
    char name[100];
    char family[100];
    int age;
}LIB2;
typedef struct tag_obj1{
    LIB1 lib1;
    struct tag_obj1* prev1,* next1;
}OBJ1;
typedef struct tag_obj2{
    LIB2 lib2;
    struct tag_obj2* prev2,* next2;
}OBJ2;
OBJ1* head1=NULL,* tail1=NULL;
OBJ2* head2=NULL,* tail2=NULL;
OBJ1* add_obj1(char* title,char* author,int year)
{
    OBJ1* current1=(OBJ1*)malloc(sizeof(OBJ1));
    strcpy(current1->lib1.title,title);
    strcpy(current1->lib1.author,author);
    current1->lib1.year=year;
    current1->prev1=tail1;
    current1->next1=NULL;
    if(tail1!=NULL)tail1->next1=current1;
    if(head1==NULL)head1=current1;
    tail1=current1;
    return current1;}
OBJ2* add_obj2(char* name,char* family,int age)
{
    OBJ2* current2=(OBJ2*)malloc(sizeof(OBJ2));
    strcpy(current2->lib2.name,name);
    strcpy(current2->lib2.family,family);
    current2->lib2.age=age;
    current2->prev2=tail2;
    current2->next2=NULL;
    if(tail2!=NULL)tail2->next2=current2;
    if(head2==NULL)head2=current2;
    tail2=current2;
    return current2;}
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"Rus");
    OBJ1* current1=NULL;
    OBJ2* current2=NULL;
    int year;
    int age;
    char buffer[100];
    char title[100],author[100];
    do
    {
        printf("Введите название книги: ");
        scanf("%s",title);
        printf("Введите автора: ");
        scanf("%s",author);
        printf("Введите год издания: ");
        scanf("%d",&year);
        current1=add_obj1(title,author,year);
        printf("Для выхода введите 'q'");
    }while(scanf("%d",&year)==1);
    current1=head1;
    char name[100],family[100];
    do
    {
        printf("Введите имя: ");
        scanf("%s",name);
        printf("Введите фамилию: ");
        scanf("%s",family);
        printf("Введите год рождения: ");
        scanf("%d",&age);
        current2=add_obj2(name,family,age);
        printf("Для выхода введите 'q'");
    }while(scanf("%d",&age)==1);
    current2=head2;
    while(current1!=NULL)
    {
        printf("title:%s,author:%s,year:%d\n",current1->lib1.title,current1->lib1.author,current1->lib1.year);
        current1=current1->next1;
    }
    while(current2!=NULL)
    {
        printf("name:%s,family:%s,age:%d\n",current2->lib2.name,current2->lib2.family,current2->lib2.age);
        current2=current2->next2;
    }
    return 0;
}
Добавлено через 1 минуту
По какому принципу организовать сам обмен?Напишите или подскажите плиз!)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2016, 11:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Связные списки.Обмен первыми половинами двух связных списков (C++):

Обмен первыми половинами двух стеков - C++
Помогите, пожалуйста, нужно написать программу обмены первыми половинами двух стеков.

Объединение двух связных списков с объектами одного типа - C++
Здравствуйте. При изучении связных списков, написал шаблон для связного списка, с функциями добавления и удаления с начала и конца списка....

Обмен половинами в матрице - C++
Дана матрица HxW H = 4 W = 4. Составить функцию, которая может, менять столбцы первой половины матрицы на столбцы второй половины...

Представление графов с помощью связных списков - C++
Здравствуйте уважаемые форумчане. Помогите мне пожалуйста. Никак не могу понять как представить граф с помощью связанных списков. Я так...

Связные списки - C++
12. Использовать (линейные) однонаправленные списки без заглавной звена (рис. А) или с заглавной звеном (рис. Б) при последующем их...

Связные списки - C++
Я практически полный нуб в С++. Вот такая задача: В столовой предлагаются N комплексных обедов, состоящих из Q блюд. Известна стоимость и...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2016, 11:20
Привет! Вот еще темы с ответами:

Связные списки. - C++
Всем привет ребят можете привести пример двусвязносго списка.

Связные списки - C++
Вот есть код все работает отлично но препод сказал что-бы при вводе элементов в список элементы сортировались вот к примеру 20 5 8 12 1 10...

Связные списки - C++
Помогите пожалуйста осуществить в программе вот такие вот действия: 1) добавление элементов в начало связного списка; 2)добавление...

Связные списки - C++
Доброго времени суток. И у меня такая проблема - не могу разобраться со связными списками. Не могли бы вы помочь мне с этим, допустим,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru