Naomba msaada wa material ya Data structure and algorithm

Kivule

JF-Expert Member
Joined
Nov 29, 2012
Posts
639
Reaction score
662
Habari wakuu,

Mambo niaje ndugu zangu? Samahani nilikua naomba mwenye notsi au vitabu vya data structure and algorithm hata past papers zake au njia za kuelewa zaidi iyo topic.

Ahsanteni.
 
Mkuu mbona hizo ni basic za programing…… tafuta notes au vitabu vya C au C++ vimeelezea poa.
 
Ahsante kwa ushauri bro merengo..... mana semester ijayo tunaisoma iyo module.
 
Ni bora kusema unatumia language ipi ili upewe recommendation ya materials zilizobase sana kwenye language hiyo, datastructures na algorithms ingawa zina function ileile,

Bado zina syntax tofauti kwenye languages tofauti, kama C utatumia codes za kutosha na pointers kuimplement kitu kama a linked list huku kwenye Java utatumia just one line of code... We utakua unatumia language gani??

Kama unataka kuelewa deep inside how they work, then the hardway ni kupitia C/C++ maana utakua unaiunda structure nzima na kufanya memory allocation mwenyewe, languages kama java itakufanyia automatic.

Mi ntakushauri uangalie videos kwanza kabla ya kuingia kwenye vitabu, hizi concepts ni muhimu sema zinachanganya kama mtu hana experience ya kutosha, kujisomea mwenyewe kwenye vitabu unaweza elewa ndivo-sivyo.
 
Dreson4,

Nimekuelewa bro na ahsante kwa maelezo.....mm ni mwanachuo sina utaalamu sana na programming languaga ila semester ijayo tunasoma Data structure and algorithms na module zingine na pia C programming tunasoma.
 
Last edited by a moderator:
Kivule,

Basi kama huna experience na programming ni bora uanze kwanza na programming ujue the basics how a program works kabla ya kuanza kusoma datastructures au algorithms, ni sawa na kusema unasoma applications of integration kabla ya kujua how to integrate a function...

Fungua youtube, tafuta jamaa anaitwa newboston ana playlist ya C programming nzuri, pitia ile playlist video moja hadi nyingine upatepate experience, ingia site kama projecteuler.net usolve maswali kadhaa kujipima uwezo,

Afu ingia kwenye datastructures na algorithms, hapo ndo utaweza kuzielewa kwa urahisi, la c hivo utaambiwa terminologies nyepesi sana kama recursion hutoelewa hata zinafanya nini mwisho wa siku course utaiona ngumu sana.
 
Last edited by a moderator:
Lecture za huyo mother wa stanford ziko poa download playlist hapa. Zinahusu data structures ,recursion , algorithms etc. Anatumia c++

Mfano wa data structure kwenye c++

Header filemwanafunzi.h

#include <string>
#include "akauntYmwanafunzi.h"

Class mwanafunzi{
mwanafunzi();
~mwanafunzi();

public:

void wekajina(string jinLamwanafunzi);
string jina();
void wekaUmri(int umriWamwansfunzi);
int umri();
void wekaDarasa(string darasa);
string darasa();
int nambaYaaccountYaMwanafunzi();
akauntYmwanafunzi * balanceKatikaAccount();


private:

string _jina;
int _umri;
int _darasa;
int _nambaYaacciunt;
akauntYmwanafunzi _mwanafunziHuyu;
mwanafunzi *Anayefuata; //pointer kwa ajiri ya linked list

};
 

Kaka uko vizuri. Nazikumbuka kwa kiasi nilizisoma pale DIT wakati fulani hivi!
 
Last edited by a moderator:
churaxzbt8,

Hahaha mkuu mbona code iko rough sana hii, hii ukicompile lazima ikupigie kelele na errors kama milioni hivi, ya nini kuweka function ya void afu inachukua input then haifanyi chochote na input yenyewe, afu unadiclare vitu mare mbili mbili...

Acha kumchanganya bwana mdogo maana mfano wako hautomsaidia zaidi ya kumchanganya, afu hiyo datastructure gani hiyo, hiyo hata hawafundishi, ni very basic mtu anayeanza kusoma lesson mbili tatu lazima atajua kutengeneza class sema ulivotengeneza wewe sivyo...
 
Last edited by a moderator:
Kaka uko vizuri. Nazikumbuka kwa kiasi nilizisoma pale DIT wakati fulani hivi!
Kaka naona unanipa kichwa, bado siko vzr, nakomaa, haya madude hayana mwisho, miaka kumi inapita bado vya kusoma ka milioni... sema basic concepts ni rahisi mtu yeyote ku-grasp na ni zilezile kwa programming languages zote
 
Kaka naona unanipa kichwa, bado siko vzr, nakomaa, haya madude hayana mwisho, miaka kumi inapita bado vya kusoma ka milioni... sema basic concepts ni rahisi mtu yeyote ku-grasp na ni zilezile kwa programming languages zote.

Pamoja na hayo, lakini still ulicho nacho si haba kaka!
 

Haha!! hii comment yako imenifanya nimecheka sana mkuu . Imeniwezesha kutambua kuwa knowledge yako katika programming ni ndogo sana hivyo sitapoteza muda kubisha na wewe.

Labda kwa kukusaidia,
Hiyo hapo ni interface ya data structure ambayo inaitwa mwanafunzi, interface au declarations huwa zinaandikwa kwenye header files na code yenye yaan implementation au definition ya data structure hiyo hiko kwenye faili jingine linaloishia na .cpp. ie mwanafunzi.cpp

Kwenye hiyo interface kuna baadhi ya fuction ni getters and setters. Wewe kwa vile knowledge yako ndogo unasema nimerudia ,naisi ujuhi tofauti ya functions na variables ,pia mpaka sasa ujuhi kwamba function ambayo ni void inaweza ikachukua argument/parameter

Tambua:
Classes zinakupa abstraction nzur ya kutengeneza data structures nzuri kuliko structures.

MKUU
Knowledge yako ndogo Thats y umecompile hyo header file alafu unasema ina errors.
 


Sijacompile hiyo code mkuu, void function inaweza chukua arguments sijakataa, najua void means haireturn anything, ila unaweka function ambayo inachukua argument then haifanyi chochote whats the use of it?

Angalia mfano wa hii function yako

void wekaUmri(int umriWamwansfunzi);
int umri();

Argument ni umriWamwanafunzi, sasa hiyo inakwenda wapi kama ndani ya function yenyewe kuna "int umri();" u mean to tell me kwenye C++ mkiweka methods mnadeclare type?? au unataka unambie neno "umri()" ni variable? natumia C,Java,Python ila sijawahi ona variable inakua declared kama method na wala sijawahi ona method inawekewa variable type...

Em fafanua vizuri hiyo code yako inafanya nini mwanzo hadi mwisho, unaandika code mbaya afu unaanza kulalamikia uelewa wa watu, hata kama cjatumia C++ am sure ningeelewa.

Em nipe mfano wa code iliyomo kwenye header file ambayo inatumika kuimplement chochote kilichopo kwenye hii code yako.
 
Implementation
file la mwanafunzi.cpp

#include "mwanafunzi.h"


mwanafunzi::mwanafunzi(){

}
mwanafunzi::~mwanafunzi(){

}



void mwanafunzi:: wekajina(string jinLamwanafunzi){

_jina = jinLamwanafunzi;

}

string mwanafunzi::jina(){

return _jina;
}

void mwanafunzi:: wekaUmri(int umriWamwansfunzi){

_umri = umriWamwansfunzi; // hapa nina assign value tuliyopewa na caller function kwenye varible _umri
}

int mwanafunzi::umri(){

return _umri; //hapa na return value ya variable _umri kwa caller fuction
}

void mwanafunzi:: wekaDarasa(string darasa){

_darasa = darasa:

}

string mwanafunzi:: darasa(){

return _darasa;
}

int mwanafunzi::nambaYaaccountYaMwanafunzi(){

akauntYmwanafunzi *akaunti = new akauntYmwanafunzi;
return akaunti->nambaYaAkaunti(_jina);

}

akauntYmwanafunzi * mwanafunzi::balanceKatikaAccount(){

akauntYmwanafunzi *akaunti = new akauntYmwanafunzi;
return akaunti->balance(_jina);

}

Mkuu imenilazimu niandike implementatiin nzima. Naic tutaelewana sasa

Majibu ya maswali yote utayapata ukisoma code hiyo
 

Implementation
file la mwanafunzi.cpp

[URL=https://www.jamiiforums.com/usertag.php?do=list&action=hash&hash=include]#include [/URL] "mwanafunzi.h"


mwanafunzi::mwanafunzi(){

}
mwanafunzi::~mwanafunzi(){

}



void mwanafunzi:: wekajina(string jinLamwanafunzi){

_jina = jinLamwanafunzi;

}

string mwanafunzi::jina(){

return _jina;
}

void mwanafunzi:: wekaUmri(int umriWamwansfunzi){

_umri = umriWamwansfunzi; // hapa nina assign value tuliyopewa na caller function kwenye varible _umri
}

int mwanafunzi::umri(){

return _umri; //hapa na return value ya variable _umri kwa caller fuction
}

void mwanafunzi:: wekaDarasa(string darasa){

_darasa = darasa:

}

string mwanafunzi:: darasa(){

return _darasa;
}

int mwanafunzi::nambaYaaccountYaMwanafunzi(){

akauntYmwanafunzi *akaunti = new akauntYmwanafunzi;
return akaunti->nambaYaAkaunti(_jina);

}

akauntYmwanafunzi * mwanafunzi::balanceKatikaAccount(){

akauntYmwanafunzi *akaunti = new akauntYmwanafunzi;
return akaunti->balance(_jina);

}

Mkuu imenilazimu niandike implementatiin nzima. Naic tutaelewana sasa

Majibu ya maswali yote utayapata ukisoma code hiyo.


Angalia matumizi ya data structure hii kwenye main.cpp
HII NDIO CLIENT CODE
#include <iostream>
#include "mwanafunzi.h"

int main(int argc, char* argv[]){

//tunatengeneza rekodi za wanafunzi watatu kwenye heap

mwanafunzi *waKwanza = new mwanafunzi;
mwanafunzi *wapili = new mwanafunzi;
mwanafunzi *waTatu = new mwanafunzi;

//tunaweka infomation za wanafunzi husika

waKwanza->wekajina("Matoke_john");
waKwanza->wekaUmri(12);
waKwanza->wekaDarasa(7);

wapili->wekajina("Arusha_james");
wapili->wekaUmri(6);
wapili->wekaDarasa(2);

waTatu->wekajina("jamii_Mtz");
waTatu->wekaUmri(9);
waTatu->wekaDarasa(5);

// tunatengeneza linked list ili iwe rais kuprint rekodi zote

waKwanza->Anayefuata = wapili;
wapili->Anayefuata = waTatu;
waTatu->Anayefuata = NULL;

//Sasa tunaprint rekodi zote katika datastructure zetu. Tunatumia pointer tulizounganisha hapo juu

for(mwanafunzi *i = waKwanza; i != NULL; i = i->Anayefuata){

std::cout <<"Jina la mwanafunzi:- " << i->jina() <<std::endl;
std::cout << "Umri :-" <<i->umri() << std::endl;
std::cout <<"Darasa :-" << i->darasa()<< std::endl;

}
// hizo pointer tutazidelete hapa kabla ya kureturn 0 kwenye operating system.

return 0;
}

Compile and run it, then smileπŸ™‚
 

Chura sasa umeeleweka, at least umeimpleent kitu, code yako ya kwanza imekaa kimaficho zaidi mtu anashindwa kuelewa function ya nini Afu inafanya kitu gani maana umeita mimethod kibao ambayo haifanyi chochote zaidi ya kutunza data na kureturn value peupe, implementation ya linked list uko sahihi n its almost the same in C tofauti ni syntax tu ya print statements.
 
churaxzbt8 Kwanza you are either cocky or with zero sense of humor... I'd bet more on the former, you can't jump telling someone knowledge yake ndogo etc.
Secondly, that was painful to read, please work on consistency, naming variables, and just being minimal. And since you put an effort kuandika tena your program it still won't compile by just looking at it.
Kivule I have some DSA materials on my google drive, mostly in java; I can share with you if you PM me your gmail account. Also checkout www.hackerrank.com for DSA practices, they have some solid questions there and you can do them in any language you like.
 
Last edited by a moderator:
Ahsanteni jaman ndugu zangu kwa ushauri.......

Mbarikiwe.
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…