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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Немного не понял ,написанное тут про инкремент и декремент http://www.cyberforum.ru/cpp-beginners/thread389286.html
Объясните на словах или на примерах .
C++ Расписать задачу Дана целочисленная матрица размера M × N. Найти номер последней из ее строк, содержащих максимальное количество одинаковых элементов. #include <stdio.h> #include <stdlib.h> #include <time.h> int countSames(int *array, int width) { int i; int *counters = (int*)malloc(width * sizeof(int)); // можно функцией memset for (i = 0; i < width; ++i) counters = 0; http://www.cyberforum.ru/cpp-beginners/thread389283.html
C++ String в массив
Нужно из string слова разделенные пробелами занести в массив каждое слово отдельно.Нельзя использовать тип *сhar. Как это сделать и какой массив нужно создавать?
C++ Перемена местами слагаемых
#include <iostream> using namespace std; void main () { int a; int i,k=0,t,n,imax,imin,min=0,max=0; cin>>n;
C++ Задача на матрицу http://www.cyberforum.ru/cpp-beginners/thread389246.html
#include <iostream.h> int main () { int a,b; int n,m; int i,j,k=0; cout<<"n="; cin>>n; cout<<"m="; cin>>m; for (i=0; i<n; i++) for (j=0; j<m; j++)
C++ декомпиляция exe вот погуглил немного... вижу, что декомпиляция относительно небольшой программы вполне возможна. Если в самой программе в переменных инициализированные например значения с данными к БД, можно их извлечь при декомпиляции? Интересуют все варианты, включая снова сишный вариант и также ассемблерный. З.Ы. Вопрос интересует с точки зрения отладки и защиты своего приложения, а не взлома чужего. подробнее

Показать сообщение отдельно
iparafin
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 17

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

22.11.2011, 17:23. Просмотров 968. Ответов 4
Метки (Все метки)

Задание: Необходимо реализовать односвязный список. В качестве информационной части элемента выступают координаты точки. Необходимо реализовать следующие функции: добавление нового элемента в конец списка, очистка памяти от эл-ов списка, и функция вычисления площади многоугольника, вершинами которого являются точки в списке. В последнем случае функция предполагает гарантию того, что в списке больше двух элементов и эти точки образуют выпуклый многоугольник.В качестве проверки взять квадрат с левым углом (0,1) и правым нижним (1,0).
Осталось только написать формулу вычисления площади , не могу справиться. помогите!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
 
lab3.cpp
 
#include "stdafx.h"
#include "Spisok.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    chudoSpisok spis;
    spis.init();
    cout<<"square is "<<spis.square()<<endl;
    spis.remove_list();
    return 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
     Spisok.h
#ifndef MY_SPISOK
#define MY_SPISOK
 
class chudoSpisok
{
    typedef struct {
    int x,y;
    }POINT;
 
    typedef POINT ETYPE; 
    struct elem { ETYPE data; 
    elem *next;
    int *x, *y;
    };
 
    elem *p, *q;
    int *x, *y;
    int n;
 
    chudoSpisok* next;
 
public: 
     void init ();
     void add(int x,int y);
     void remove_list();
     float square();
};
#endif
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
Spisok.cpp
#include "stdafx.h"
#include "Spisok.h"
#include <iostream>
using namespace std;
 
 
void chudoSpisok::add(int x,int y)
    {
    q=new elem;
    q->data.x=x;
    q->data.y=y;
    q->next=p;
    p=q;
    }
 
    void chudoSpisok::init()
     {
         p=NULL;
        do{
        cout<<"Enter number of angles:";
        cin>>n;
        }while(n<3);
        int x;int y;
        for(int i=1;i<=n;i++){
            cout<<"Enter coordinates of "<<i<<" point:";
            cin>>x>>y;
            add(x,y);
        }
    }
 
     void chudoSpisok:: remove_list()
     {
        while(q->next != NULL){
            p=q;
            q=q->next;
            delete p;
        }
        q=q->next;
        delete p; 
    }
 
     [B]float chudoSpisok:: square()[/B]
     {
         elem *A; elem *B; elem *C ; 
         float S=0.0f;
         
         A=p ;
         B=p->next ;
         C=B->next ;
 
     while (B !=NULL &&  C !=NULL) {
             //S += square();
         A=B;
         B=C;
         C=C->next;
     }
    
    return S;
     }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru