C/C++

Член од
6 јуни 2009
Мислења
3.094
Поени од реакции
445
Хмм, линкирана листа. Во задачате е дадено секвенца и вели можи да се користи помошна секвенца, значи треба да се имплеметира со низа (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; Зависи што ќе се чува во низата.
 
Член од
14 јануари 2008
Мислења
1.341
Поени од реакции
162
Хмм, линкирана листа. Во задачате е дадено секвенца и вели можи да се користи помошна секвенца, значи треба да се имплеметира со низа (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;
}
 
Член од
6 јуни 2009
Мислења
3.094
Поени од реакции
445
Јас би користел две структури.

Код:
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;
}
Треба да се среди малце.
 

MadA@FakA

Black&White
Член од
4 август 2006
Мислења
1.049
Поени од реакции
105
Еј луѓе на кој начин се сортираат податоци по азбучен ред во една датотека ? :jaj:
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Еј луѓе на кој начин се сортираат податоци по азбучен ред во една датотека ? :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 декември 2009
Мислења
18
Поени од реакции
0
Ао може некој да ми ја реши задачата со низи за сортирање на елементи внесени преку тастатура (во примеров: 5) и да ги сортира по asc или dsc поредок.
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Ао може некој да ми ја реши задачата со низи за сортирање на елементи внесени преку тастатура (во примеров: 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 циклусот.
 

good girl

Неискусна!
Член од
1 јули 2009
Мислења
66
Поени од реакции
0
Кажи што е убо некој ко ќе ти ги решава задачите.: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:...
 

MadA@FakA

Black&White
Член од
4 август 2006
Мислења
1.049
Поени од реакции
105
Има ли некоја наредба во С++ со која можам на int да ја дадам должината на еден string

пр:

string ime;
int broj;

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

broj=4

:angry2:
 
Член од
10 февруари 2008
Мислења
845
Поени од реакции
447
Има ли некоја наредба во С++ со која можам на 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);
 
Член од
6 јуни 2009
Мислења
3.094
Поени од реакции
445
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.
 
Член од
10 февруари 2008
Мислења
845
Поени од реакции
447
Како може да се сортираат низи во текстуален документ.Притоа во текстуалниот документ има запишано повеќе променливи. Пример
Tomic Stefan 1 2 3 4 5
Stojanovski Damjan 4 5 6 7 10
Клучот за сортирање е prezime. И дали може од текстуалниот документ да се читаат променливи кои се оделени со празно место.Како во овој случај да се прочита третата променлива од лево?
 

Kajgana Shop

На врв Bottom