[c] zastosowanie variant type w stosie
Ostatnio zmodyfikowano 2014-06-14 16:00
Lukier Temat założony przez niniejszego użytkownika |
[c] zastosowanie variant type w stosie » 2014-06-12 10:27:15 Witam, mam zadanie, w którym stosując variant,unie mam przerobić mój program reprezentujący stos z typami int na stos który będzie dodawać kolejno różne typy zmiennych np int, char, float itp. Niestety nie wiem jak to zrobić o samym variancie prawie nic nie znalazłem na internecie, nie licząc kilku stron w języku angielskim z których niewiele zrozumiałem. Czy mógłby mi ktoś wytłumaczyć jak mam wykonać to zadanie na moim kodzie? #include<stdio.h> #include<stdlib.h>
struct stos { int klucz; struct stos * nast; };
typedef struct stos element; typedef element * lista;
void push( lista * e, int k ) { lista new; new =( lista ) malloc( sizeof( element ) ); new->klucz = k; new->nast =* e; * e = new; }
void peek( lista e ) { while( e != NULL ) { printf( "%d\n", e->klucz ); e = e->nast; } }
int pop( lista * e ) { lista p; int k; if( * e != 0 ) { p =* e; k =( * e )->klucz; * e =( * e )->nast; free( p ); p = 0; return k; } return - 1; }
int main() { lista li; li = NULL; printf( "Dodawanie na stos liczb 1 2 3 4 5:\n" ); push( & li, 1 ); push( & li, 2 ); push( & li, 3 ); push( & li, 4 ); push( & li, 5 ); peek( li ); printf( "Usuwanie ze stosu:\n" ); pop( & li ); peek( li ); return 0; }
|
|
pekfos |
» 2014-06-12 12:55:33 Chodzi o union? |
|
Lukier Temat założony przez niniejszego użytkownika |
» 2014-06-12 15:17:09 Tak, typy zmiennych mają być przechowywane w union, wiem że muszę przerobić push tak aby sprawdzał aktualnie pobrany typ danych z union, zaś sam w sobie variant jest typem przechowującym informację o typie danej oraz wartości danej (lecz mogę się mylić). Wiem jak działa union i na czym polega lecz nie mam pomysłu jak rozwiązać moje zadanie, potrzebuje jakieś inspiracji bądź wskazówek |
|
pekfos |
» 2014-06-12 15:18:40 Struktura z informacją o typie i unią? |
|
Lukier Temat założony przez niniejszego użytkownika |
» 2014-06-14 16:00:30 Już problem rozwiązałem lecz w każdym bądź razie dzięki za zainteresowanie |
|
« 1 » |