Pierścień dwukierunkowy. Porównanie dwóch piersc

2002-02-26 10:06
Maciej ?ak
0

Mam maly problem.
typedef struct mring
{
struct ring first;
int klucz;
}
mptr;

typedef struct ring
{
int data;
int key;
struct ring next;
struct ring
prev;
}*ptr;

void init_list(mring *head) //inicjuje pierscien
{
(
head)-&gtfirst = NULL;
}

OK to jest deklaracja dwoch struktur jedna jest deklaracja struktury struktur a druga jest zwykla strukturka.
Chodzi glownie o to aby mozna bylo dodawac dowolnie duzo pierscieni.
Teraz wykladowca zarzyczyl sobie abym mu porownal dwa pierscienia ze soba.
I tu zaczyna sie problem.
np piszac funkcje: void porownaj(mring **head) mam tylko jeden wskaznik na jeden pierscien, no a jak porownac dwa pierscienia gdy sie ma jeden przekazany do funkcji?!?!!?!?
Probowalem zaladowac po kolei pierscienie do dwoch tablic, no ale tablice musza miec z gory zadeklarowana wielkosc, a przeciez pierscien moze miec xxx elementow.
Kto mi pomoze ?
Moze rozwiazanie jest bardzo proste, ale ja juz widze rozowe plamki.

Pozdrawiam:
MAZAK

Pozostało 580 znaków

2002-02-26 11:10
ZAK
0

Już wpadłem na pomysł!!!
Wystarczy dodac do struktury mring wskaznik na nastepny *next element i dodac oprocz head jeszcze jeden element np head_nast, ktoremu przypisujemy head_nast = head->next;
i mamy dwa elementy, a zwazywszy ze mamy pierscien , to gdy przejdziemy na nastepny element , a w pierscieniu bedzie tylko jeden to wskaznik
head_nast bedzie == **head.
!!!!!!!!!!!!!! udalo sie!!!!!!!!!!!!!!!!!!!!!!

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0