* Рекурсивни структури
Публикувано на 24 октомври 2008 в раздел С/C++.
Дефинирането на указател като част от структура е напълно валидна конструкция. Освен това е напълно възможно и дефинирането на указател към структура във структура. По този начин е възможно създаването на т.нар. „рекурсивни структури“:
struct rec{
int k;
struct rec *nextrec;
};
Лесно можете да направите аналогия с рекурсивните функции. Използвайки подобни структури можем лесно да създаваме добре познати структури от данни като линейни списъци и бинарни дървета например.
Пример: Дефинира две структури и ги групира в сортиран линеен списък:
#include "stdafx.h"
#include "stdio.h"
struct list{
int k;
struct list *next;
} el1, el2, *p;
void sort(){
if (el1.k < el2.k){
el1.next = &el2;
el2.next = 0;
p = &el1;
}
else{
el2.next = &el1;
el1.next = 0;
p = &el2;
}
}
void show(){
while (p != 0){
printf("%d ", p->k);
p = p->next;
}
printf("\n");
}
void main()
{
printf("Please enter el1.k and el2.k: ");
scanf("%d%d", &el1.k, &el2.k);
sort();
show();
}
Задача: Реализирайте предишния пример с три структури.
Пусни коментар
Категории
- Бази от Данни (39)
- Вероятности (30)
- История (14)
- Кучета (67)
- Лада Нива (91)
- Математика (158)
- Методика (52)
- Общи работи (107)
- ПИК-3 Java (38)
- Политика (40)
- Програмни Среди (1)
- ПТСК (37)
- С/C++ (45)
- Семейни (15)
- Физика (35)
- ХHTML/JS (25)
- Храна (11)
Нови
- Здравей бебе!
- Какво означават метеорологичните кодове?
- Берра проправя пътеки
- Задача от YES
- Колан за теглене на автомобил