C/C++

  • Креатор на темата Креатор на темата Драган
  • Време на започнување Време на започнување
Хмм, линкирана листа. Во задачате е дадено секвенца и вели можи да се користи помошна секвенца, значи треба да се имплеметира со низа (array).
(кај линкирана листа нема потреба од помошна секвенца)

Во c++ стандардна библиотека има 3 основни колекции.
vector - внатре работи со array, расти од едниот крај
deque - со array, можи да се додава на двата краја.
list - линкирана листа, можи да се додава на двата краја

За задачава најверојатно треба да се имплементира наново deque, ама во C (спомнати се само функции а не класа)
deque е комбинација на queue и stack. Во c++ затоа што имплментациите се во трите класи погоре, класите stack и queue се завиткувач (wrapper) класи на една од трите. (само stack се имплементира ептен лесно, a само queue е исто така лесно)

Како за почеток мора да се користи ваква структура
Код:
struct deque {
	int capacitet; //max capacitet vo momentot
	int elementi; //broj na elementi
	int * niza;
}

Ова int * niza можи да се замени со void ** niza; Зависи што ќе се чува во низата.
 
Хмм, линкирана листа. Во задачате е дадено секвенца и вели можи да се користи помошна секвенца, значи треба да се имплеметира со низа (array).
(кај линкирана листа нема потреба од помошна секвенца)

Во c++ стандардна библиотека има 3 основни колекции.
vector - внатре работи со array, расти од едниот крај
deque - со array, можи да се додава на двата краја.
list - линкирана листа, можи да се додава на двата краја

За задачава најверојатно треба да се имплементира наново deque, ама во C (спомнати се само функции а не класа)
deque е комбинација на queue и stack. Во c++ затоа што имплментациите се во трите класи погоре, класите stack и queue се завиткувач (wrapper) класи на една од трите. (само stack се имплементира ептен лесно, a само queue е исто така лесно)

Како за почеток мора да се користи ваква структура
Код:
struct deque {
	int capacitet; //max capacitet vo momentot
	int elementi; //broj na elementi
	int * niza;
}

Ова int * niza можи да се замени со void ** niza; Зависи што ќе се чува во низата.

Јас би користел две структури.

Код:
struct node{
        int value;
        node *next;
}

struct deque{
        node *root;
        node *tail;
        int size;
}
 
Јас би користел две структури.

Код:
struct node{
        int value;
        node *next;
}

struct deque{
        node *root;
        node *tail;
        int size;
}

Така е линкирана листа. list во C++. А не deque. Нека кажи тој што ја поставил како му треба. Еве јас ќе кажам за имплементација со низи набрзанка

Код:
struct deque {
	int capacitet; //max capacitet vo momentot
	int elementi; //broj na elementi
	int * niza;
}

size (struct deque * d)
{
	return d->elementi;
}

get_last(struct deque * d)
{
	return d->niza[elementi-1];
}

remove_last(struct deque * d)
{
	d->elementi--;
	//d->niza[elementi] = 0; // ne mora da ja ima ovaa linija
}
isert_last(struct deque * d, int toInsert)
{
	if (d->elementi == d->capacitet)
	{
		int * novaNiza = (int*)malloc(sizeof(int)*(d->capacitet+5));
		//kopiraj ja starata vo novata niza
		memcpy(novaNiza, niza, elementi*sizeof(niza[0]));
		free(d->niza);
		d->niza = novaNiza;
		d->capacitet += 5;
	}
	d->niza[elementi] = toInsert;
	elementi++;
}
insert_first(struct deque * d, int toInsert)
{
	int * novaNiza = (int*)malloc(sizeof(int)*(d->capacitet+1));
	//kopiraj ja starata vo novata niza na edno mesto ponapred
	memcpy(novaNiza+1, niza, elementi*sizeof(niza[0]));
	free(d->niza);
	d->niza = novaNiza;
	d->capacitet += 1;
	d->niza[0] = toInsert;
}

Треба да се среди малце.
 
eve uste edna zadca molma resenie ili pomos :vozbud:
zadacamece.jpg
 
Еј луѓе на кој начин се сортираат податоци по азбучен ред во една датотека ? :jaj:
 
Еј луѓе на кој начин се сортираат податоци по азбучен ред во една датотека ? :jaj:

Де ова пробај го:

Код:
#include <iostream>
#include <string>

using namespace std;

int main()
{
           // Значи податоците од датотеката смести ги во низа
	string arnList[9]={"John", "Dave", "Steve", "Kevin","Andrew","Scott","Colin","Timothy","Zenon"};
	int nLength=9; // Бројот на елементи во низата
	string nTemp;
	int iCv;
 
	for (iCv = 1; iCv < nLength; ++iCv) {
		nTemp = arnList[iCv];
		int k;
 
		for (k = iCv-1; k >= 0 && arnList[k] > nTemp; k--) {
			arnList[k+1] = arnList[k];
		}
		arnList[k+1] = nTemp;
	}
	for(iCv=0; iCv<nLength; iCv++){
		cout << arnList[iCv] << " ";
	}
 
  cin.get();
  cin.get();
}
 
Ао може некој да ми ја реши задачата со низи за сортирање на елементи внесени преку тастатура (во примеров: 5) и да ги сортира по asc или dsc поредок.
 
Ао може некој да ми ја реши задачата со низи за сортирање на елементи внесени преку тастатура (во примеров: 5) и да ги сортира по asc или dsc поредок.

Претпостави дека N = должината на низата...

Код:
for(int j =0; j<N; j++) {
for(int i=1; i<N; i++) {
if(niza[i]>niza[i-1]) {
int tmp = niza[i];
niza[i] = niza[i-1];
niza[i-1]=tmp;
}
}
}

Ова е за сортирање од најголем кон најмал, а за обратно само смени го знакот кај if циклусот.
 
Кажи што е убо некој ко ќе ти ги решава задачите.:vozbud::vozbud:
hahaha e da ubo bi bilo nekoj ako mi gi resava ama do sega nikoj ne mi resil zadaca samo mi kazale kako i mnogu mi pomognale ve molam ako nekoj znaj ima ideja neka pisi ne e fer vaka da prajme prazni muabeti sepak baram pomos:(:pipi:...
 
Има ли некоја наредба во С++ со која можам на int да ја дадам должината на еден string

пр:

string ime;
int broj;

cin>>ime; // ај нека биде Иван и сеа Иван има 4 букви па да се добие

broj=4

:angry2:
 
Има ли некоја наредба во С++ со која можам на int да ја дадам должината на еден string

пр:

string ime;
int broj;

cin>>ime; // ај нека биде Иван и сеа Иван има 4 букви па да се добие

broj=4

:angry2:

За стринг не сум сигурен, но за char може сигурно еве :
...
char ime[50];
int broj;
cout<<"Vnesi ime"<<endl;
cin>>ime;
broj=strlen(ime);
 
hahaha e da ubo bi bilo nekoj ako mi gi resava ama do sega nikoj ne mi resil zadaca samo mi kazale kako i mnogu mi pomognale ve molam ako nekoj znaj ima ideja neka pisi ne e fer vaka da prajme prazni muabeti sepak baram pomos:(:pipi:...
Се во ред, ама таа задачата ич не е јасно поставена. (тоа делот кај што вели - Да се предвиди...) Ако можи да ја до објасниш. Инаку изгледа прилично лесна.


Има ли некоја наредба во С++ со која можам на int да ја дадам должината на еден string

пр:

string ime;
int broj;

cin>>ime; // ај нека биде Иван и сеа Иван има 4 букви па да се добие

broj=4

:angry2:

lenght() методот од стринг објект.
во случајов погоре
broj = ime.lenght();

Еве повеќе види овде за класта string.
 
Како може да се сортираат низи во текстуален документ.Притоа во текстуалниот документ има запишано повеќе променливи. Пример
Tomic Stefan 1 2 3 4 5
Stojanovski Damjan 4 5 6 7 10
Клучот за сортирање е prezime. И дали може од текстуалниот документ да се читаат променливи кои се оделени со празно место.Како во овој случај да се прочита третата променлива од лево?
 
Back
На врв Bottom