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

Абстрактные структуры данных - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не корректно работает программа (Упорядочить элементы матрицы) http://www.cyberforum.ru/cpp-beginners/thread721137.html
Условие: Дана матрица целых чисел N* M.Упорядочить элементы матрицы так чтобы четные элементы матрицы максимально плотно заняли верхнюю часть матрицы,а не четные нижнюю. Код: #include <iostream> #include <cmath> using namespace std; void sort( int **a, const int nstb, const int nstr); int main(){ cout <<"Vvedite razmer massiva\n";
C++ уплотнение памяти помогите исправить ошибку в коде. условие: Реализовать заданную стратегию управления памятью. Реализовать базовые операции управления оперативной памятью. - Выделение блока памяти заданного размера; - высвобождение выбранного блока; - уплотнение памяти. //#include "stdafx.h" #include <stdio.h> #include<string.h> http://www.cyberforum.ru/cpp-beginners/thread721136.html
Прочитать неограниченное количество строк, а после нажатия Enter выйти из цикла C++
Здравствуйте. Столкнулся с такой проблемой: необходимо прочитать неограниченное количество строк, а после нажатия Enter выйти из цикла. Делаю так: #include <iostream> #include <string> using std::cin; using std::cout; using std::string; using std::endl; int main (){
Замена чисел в строке C++
условие: в строке заменить все числа на введенное с клавиатуры выдает ошибку: Unsigned(c+1)<=256. вот код: #include<iostream> using namespace std; void main() { setlocale(LC_ALL,"rus"); char *s=new char, *s1=new char;
C++ не запускается программа, выводящая содержимое файла http://www.cyberforum.ru/cpp-beginners/thread721102.html
Эта программа по идее должна выводить на экран содержимое произвольно заданного файла, но не запускается дальше того, как вводится название файла( В чем ошибка? #include "iostream.h" #include "fstream.h" #include "conio.h" int main() { char len; ifstream infile; cout<<"Vvedite nazvanie faila ";
C++ Найти площадь пятиугольника Даны вещественные числа а, b, с, d, e. Найти площадь пятиугольника, изображенного на рис.2. (Определить функцию для расчета площади треугольника по трем его сторонам.) только чтобы на с++. или на языке с. подробнее

Показать сообщение отдельно
Iliabobr
3 / 3 / 1
Регистрация: 04.11.2009
Сообщений: 98
06.12.2012, 06:18     Абстрактные структуры данных
добрый вечер всем. Не понимаю как реализовать функцию insert(x,p,L), где элемент х вставляется в позицию р списка L, смог добиться только удаления элементов.
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
// linklist.cpp
// список
#include <iostream>
#include <conio.h>
using namespace std;
///////////////////////////////////////////////////////////
struct link   // один элемент списка
{
  int data;   // некоторые данные
  link* next; // указатель на следующую структуру
} ;
///////////////////////////////////////////////////////////
class linklist // список
{
  private:
    link* first;
  public:
    linklist ( )            // конструктор без параметров
      { first = NULL; }     // первого элемента пока нет
    void additem ( int d ); // добавление элемента
    void display ( );       // показ данных
    void del(int p); // функция удаления
};
///////////////////////////////////////////////////////////
void linklist::additem ( int d ) // добавление элемента
{
  link* newlink = new link;      // выделяем память
  newlink->data = d;             // запоминаем данные
  newlink->next = first;         // запоминаем значение first
  first = newlink;               // first теперь указывает на новый элемент
}
///////////////////////////////////////////////////////////
void linklist :: del(int p)
     {
    link* current = first;
    link*  pred;                             // указывает на начало
      int k=0;
    while(current) // выход по достижении последнего элемента
    {
         pred=current;
        current = current->next; // следующая ссылка
         k++;
         if (k==p)
         { pred->next=current->next;
         delete current;
         break;
         }
 
    }
}
 
 
///////////////////////////////////////////////////////////
void linklist::display ( )
{
  link* current = first;           // начинаем с первого элемента
  while( current )                 // пока есть данные
  {
    cout << current->data << endl; // печатаем данные
    current = current->next;       // двигаемся к следующему элементу
  }
}
///////////////////////////////////////////////////////////
 
 
///////////////////////////////////////////////////////////
int main ( )
{   int el,n,k;
  linklist li;       // создаем переменную-список
  cout<<"input number of element";
  cin>>n;
 
  while (n>0)
  {
     cout<<"input current element";
     cin>>el;
     li.additem ( el ); // добавляем туда несколько чисел
     n--;
  }
 /* li.additem ( 25 ); // добавляем туда несколько чисел
  li.additem ( 36 );
  li.additem ( 49 );
  li.additem ( 64 );    */
 
  li.display ( );
   cout<<"delet element";
     cin>>k;             // показываем список
  li.del(k); // удаляем
    li.display ( );
   getch();
  return 0;
}
Добавлено через 3 часа 7 минут
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
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
//---------------------------------------------------------------------------
// linklist.cpp
// список
#include <iostream>
#include <conio.h>
using namespace std;
///////////////////////////////////////////////////////////
struct link   // один элемент списка
{
  int data;   // некоторые данные
  link* next; // указатель на следующую структуру
} ;
///////////////////////////////////////////////////////////
class linklist // список
{
  protected:
 link* FTop;
 int FCount;
  private:
    link* first;
  public:
    linklist ( )            // конструктор без параметров
      { first = NULL; }     // первого элемента пока нет
    void additem ( int d ); // добавление элемента
    void display ( );       // показ данных
    //void del(int p); // функция удаления
    void insert (int a,link* p);
};
///////////////////////////////////////////////////////////
void linklist::additem ( int d ) // добавление элемента
{
  link* newlink = new link;      // выделяем память
  newlink->data = d;             // запоминаем данные
  newlink->next = first;         // запоминаем значение first
  first = newlink;               // first теперь указывает на новый элемент
}
///////////////////////////////////////////////////////////
/*void linklist :: del(int p)
     {
    link* current = first;
    link*  pred;                             // указывает на начало
      int k=0;
    while(current) // выход по достижении последнего элемента
    {
         pred=current;
        current = current->next; // следующая ссылка
         k++;
         if (k==p)
         { pred->next=current->next;
         delete current;
         break;
         }
 
    }
}           */
void linklist::insert (int a, link* p)
{
 
 link* work, *work1, *work2;
 work = FTop;
 while (work->next->next != p)
 work = work->next;
 work2 = work->next;
 work1 = new link;
 work1->data = a;
 work1->next = work2;
 work = work1;
 FCount++;
}
 
 
///////////////////////////////////////////////////////////
void linklist::display ( )
{
  link* current = first;           // начинаем с первого элемента
  while( current )                 // пока есть данные
  {
    cout << current->data << endl; // печатаем данные
    current = current->next;       // двигаемся к следующему элементу
  }
}
///////////////////////////////////////////////////////////
 
 
///////////////////////////////////////////////////////////
int main ( )
{   int el,n,k;
  linklist li;     // создаем переменную-список
  cout<<"input number of element";
  cin>>n;
  while (n>0)
  {
     cout<<"input current element";
     cin>>el;
     li.additem ( el ); // добавляем туда несколько чисел
     n--;
  }
 /* li.additem ( 25 ); // добавляем туда несколько чисел
  li.additem ( 36 );
  li.additem ( 49 );
  li.additem ( 64 );    */
 
  li.display ( );
   cout<<"vvod adresa";
     cin>>k;           // показываем список
  li.insert(9,k);
    li.display ( );
   getch();
  return 0;
}
почти уверен что функция инсерт правильна, но задействовать ее не могу.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru