Ro'yhat elementlarini ekranga chiqarish
void print(Tnode *phead)
{
Tnode* p = phead;
while(p)
{
cout <<""<< p->value<<" ";
p = p->pnext;
}
cout << endl; }
53. Ro’yxatlar ustida bajariladigan amallar: ma’lumotlarni o’chirish (Data deletion) ва ma’lumotlarni qidirish (Data search) амалларни мисоллар ёрдамида тушунтиринг.
Ro‘yxat elementini o'chirish:
void deleteList(TNode *phead) {
if(phead)
{
deleteList(phead->pnext);
if(phead)
delete phead;
}
}
54. Бир ва икки боғламли рўйхат тузилмаларининг мантиқий тасвирланиши ва уларнинг struct калит сўзи орқали тавсифланишини тушунтириб беринг (С++ тилида).
Bir bog’lamli ro’yxatda ko’rsatkichni o’ziga xosligi shundan iboratki, bunda faqatgina o’zidan keyin keluvchi ro’yxat elementi manzilini ko’rsatadi.
Ro’yxatning eng so’ngi elementining ko’rsatkich maydoni bo’sh bo’ladi (NULL).
Lst – ro’yxat boshiga ko’rsatkich.
Umuman olganda, ro’yxat bo’sh ham bo’lishi mumkin, bu holda Lst bilan Null ustma-ust tushadi, ya’ni teng bo’ladi.
Ro’yxat elementiga murojat faqatgina ro’yxat boshidan boshlab amalga oshiriladi, ya’ni bu ro’yxatda teskari aloqa mavjud emas.
struct Tnode {
int value;
Tnode *pnext;
Tnode (int val): pnext(0), value(val) {}
};
55. Рўйхат тузилмаларига элемент қўшиш (addList();) ва элементни ўчириш (deleteList();) функцияларнинг тавсифланишини тушунтириб беринг.
Ro'yxatga element qo'shish:
void addList (TNode **pphead, int val)
{
TNode **pp = pphead, *pnew;
pnew = new TNode(val);
pnew->pnext = *pp;
*pp = pnew;
}
Do'stlaringiz bilan baham: |