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

Cортировка двусвязного списка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Заполнить матрицы по правилу http://www.cyberforum.ru/cpp-beginners/thread272164.html
Доброго времени суток. Вот встал перед проблемой при работе с матрицей. Необходимо заполнить матрицу 5х5 следующим образом 1 1 1 1 1__или__x 1 1 1 x 0 1 1 1 0_______0 x 1 x 0 0 0 1 0 0_______0 0 x 0 0 0 1 1 1 0_______0 x 1 x 0 1 1 1 1 1_______0 0 0 0 0 Исходников не прошу, хочу просто услышать мысли по этому поводу, алгоритмы реализации, мб примеры, а то щя по книжке С учу а там...
C++ Классы и строки Определить класс «Строка» – String длины n. Написать не сколько конструкторов, в том числе конструктор копирования. Реали зовать методы для выполнения конкатенации строк, извлечения сим вола из заданной позиции, сравнения строк. Перегрузить операции сложения, индексирования, отношения, добавления (+ =) , присваивания для данного класса. http://www.cyberforum.ru/cpp-beginners/thread272161.html
C++ коментарий к коду..
Помогите пожалуйста у меня есть программа вот она: #include <iostream> int rev(int rhs) { int res = 0; while(rhs) { res += rhs % 10;
Перегрузка функций и операторов C++
Создать класс String – строку, используя динамическую память. Определить операторы "+" –сложение строк, "=" и "+=" – присваивания, как методы класса. Определить операторы сравнения "==", "!=", "<", ">", как дружественные функции. Операторы должны работать как со String, так и с char*. Определить оператор "" для доступа к каждому символу в отдельности. Перегрузить операторы ввода/вывода в поток.
C++ Динамика,С++,предметная область Аптека http://www.cyberforum.ru/cpp-beginners/thread272156.html
Сказали сделать задачу на С++,дали только предметную область Аптека,которая состоит из:класс поставщик,класс база,класс сотрудники,класс поставки,класс дата,класс мед_препараты и сказали сделать из этого задачу с динамикой.Помогите люди! если будут какие то наброски этой страшной задачи пишите,надеюсь на вашу помощь
C++ Координаты пересечения Есть такое задания Создать два класса: линия (Line, содержит параметры a и b) и круг (Circle, содержит координаты центра и радиус). Описать функцию, определяющую координаты точек пересечения, как дружественную. Подскажите по какой формуле или как определить координаты пересечения линии с кругом? подробнее

Показать сообщение отдельно
sav241
5 / 5 / 0
Регистрация: 04.04.2011
Сообщений: 37
08.04.2011, 00:14     Cортировка двусвязного списка
вот те прога,список двунаправленый, создается чтением данных из файла, по ходу создания сортируется методом вставки, прога рабочая.
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
115
// AnketaNewSypper.cpp : Defines the entry point for the console application.
//
#include <fstream>
#include "StdAfx.h"
#include <iostream>
#include "stdafx.h"
#include <Windows.h>
#include <math.h>
#include <string.h>
#include <fstream>
using namespace std;
 
struct anketa {
            char *fam;
            unsigned int god;
            anketa *next;
            anketa *over;
};
anketa *first=NULL;
    
ifstream file1("file.txt");
 
  anketa *getData(){ //создание нового элемента списка, считывание его с клавиатуры
      
      anketa *a=new anketa;
          if(!file1.eof()){
          a->fam= new char [255];
          file1 >> a->fam;   
          }else{delete a;return NULL; }
      
      if(!file1.eof()){
          file1 >> a->god;
          }else{delete a; return NULL; }
     
    a->next=NULL;
    a->over=NULL;
    return a;
}
void createList1(){ //создает сортированный список по году, сортируется по ходу создания
    anketa *newEl; // создание нового элемента, считывание с клавиатуры,операция присваивания
    do{
  newEl=getData();
 
  if(newEl==NULL)break;
    if (!first) {first=newEl;}
    else {
         if (newEl->god<first->god) {
            newEl->next=first;
            first=newEl;
 
         }
         else { //вставка элемента
             anketa *curr=first;
             BOOL ins = FALSE;
             while (curr->next!=NULL) {
                 if (curr->next->god>newEl->god) {
                     newEl->next=curr->next;
                     curr->next=newEl;
                     newEl->over=curr;//sdgsg
                     ins = true;
                     break;
                 }
                 curr=curr->next;
             }
             if (!ins) {
                 curr->next = newEl;
                 newEl->over=curr;//sdgsg
             }
         }  
   }
 
    }while(true);
}
 
 
 
void show () {
    anketa *curr=first;
    cout<<"-------------------"<<endl;
    while (curr){
         cout <<curr->fam<<" "<<curr->god<<endl;
         curr=curr->next;
    }
}
 
void drop (){
    anketa *curr=first;
    anketa *delEl;
    while (curr) {
        delEl=curr;
        curr=curr->next;
        delete delEl;
    }
 
}
 
void main(){
 
     SetConsoleCP(1251);
     SetConsoleOutputCP(1251);
     int t;
     cout<<"1-для сортировки по дате, , 3 - для показа списка"<<endl;
     cin>>t;
     if(t==1){
     createList1();
     cin>>t;
     }
  
     if(t==3){
         show();
     }      
 
     drop ();
     file1.close();
}
 
Текущее время: 22:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru