[ Neznalica_sa_ugla @ 03.05.2007. 12:09 ] @
Da li se može celo polje( vrednosti) dvodimenzionalno upisati u stack i iz njega vratiti ponovo u polje .Nacin da upisujem preko petnji u vise navrata mi se ne čine baš elegantno .

hvala
[ bjevta @ 04.05.2007. 11:19 ] @
moram da primetim da mi opšte nije jasno šta želiš. može li to malo preciznije i detaljnjije, pa da vidimo?
[ Glogov_Kolac @ 04.05.2007. 21:02 ] @
Ti izgleda hoces da upises matricu u stek.Za stek postoji klasa u prostoru imena Collectons(ako se ne varam) a mozes i sam da implementiras stek.A to kako da upisujes vrednosti iz matrice u stek zavisi od tvog konkretnog problema jer je stek jednodimenzionalan.Moras detaljnije da opises sta ti treba!
[ bjevta @ 06.05.2007. 07:47 ] @
evo, pogledah .Net help i vidim da je System.Collections.Stack metoda:

public virtual void Push ( Object obj )

to znači da na stek možeš staviti bilo šta, a posle ga kastuj.
-------------
gornju varijantu NE preporučujem - to je više old-fashion style. Mnogo je bolje koristiti generic kolekcije, u tvom primeru: System.Collections.Generic.Stack

primer: ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref2/html/T_System_Collections_Generic_Stack`1.htm
[ Neznalica_sa_ugla @ 06.05.2007. 09:00 ] @
Upravo tako , želim staviti (object ) u ovom slučaju polje i kada uzimam sa steka da mi se sve vrednosti vrate u polje .Do sada sam koristio
public static void push()
{
for(int prv=0;prv<15;prv++)
{
for (int dru=0;dru<25;dru++)
{
stek.Push(aPrikazPodatak[prv, dru]);
}

}

}

public static void pop()
{
for(int prv=14;prv>=0;prv--)
{
for (int dru=24;dru >= 0 ;dru--)
{

try
{
aPrikazPodatak[prv, dru] = stek.Pop().ToString();
}
catch
{
aPrikazPodatak[prv, dru] = null;
}


}


}
}

ali mi ovo izgleda trapavo i ima neki problem ,Kod pop() stane gotovo 2-3 sec da vrati podatak ,Misli da bi bilo jednostavnije staviti polji vratiti ga
al mi
stek.Push(aPrikazPodatak) jednostavnio ne prolazi..

[ Pharos @ 06.05.2007. 09:13 ] @
Ne znam da li želiš više matrica da staviš na stek ili samo jednu matricu.
Ako je samo jedna, ne vidim logiku. Samo ubacuješ elemente jedne matrice tipa int u stack i... šta onda? U čemu je poenta?

Ukoliko želiš više matrica da smestiš na stek, prvo što moraš da uradiš jeste da napraviš neku svoju klasu koja se zove matrica.
Code:

public class Matrica() { ... }

Kad si napravio matricu, onda je smeštaš u stek.
Code:

Stack<Matrica> st = new Stack<Matrica>();
st.Push(...)...


I dalje sa stekom radiš šta hoćeš i kako hoćeš.
[ Pharos @ 06.05.2007. 10:24 ] @
Evo ti nešto na brzinu da se ne mučiš preterano.
Kod je rađen na brzinu, pa ako se potkrala neka greška ili kod nije najoptimizovaniji, ne zamerite.

Klasa matrica
Code:

using System;
using System.Collections.Generic;
using System.Text;

namespace Matrice
{
    class Matrica
    {
        private int _i, _j;
        private int[,] _n;

        public int i
        {
            get { return _i; }
        }

        public int j
        {
            get { return _j; }
        }

        public Matrica()
        {
            _i = 0; _j = 0; _n = new int[0,0];
        }

        public Matrica(int i, int j, params int[] n)
        {
            _i = i; _j = j; _n = new int[i, j];
            int k = 0;
            for (int ii = 0; ii < _i; ii++)
                for (int jj = 0; jj < _j; jj++)
                    _n[ii, jj] = n[k++];
        }

        public override string ToString()
        {
            if (i == 0)
                return "[,]";
            else
            {
                string s = string.Empty;
                for (int ii = 0; ii < i; ii++)
                {
                    for (int jj = 0; jj < j; jj++)
                    {
                        s += string.Format("{0,-3}", _n[ii, jj]);
                    }
                    s += Environment.NewLine;
                }
                return s;
            }
        }

        public int dohvati(int ii, int jj)
        {
            return _n[ii, jj];
        }
    }
}


Program
Code:

using System;
using System.Collections.Generic;
using System.Text;

namespace Matrice
{
    class Program
    {
        static void Main(string[] args)
        {
            Stack<Matrica> st = new Stack<Matrica>();
            Console.Write("Unesi broj matrica: ");
            int n;
            int.TryParse(Console.ReadLine(), out n);
            for (int i = 0; i < n; i++)
            {
                Console.WriteLine("Matrica [{0}]: ", i + 1);
                Console.Write("i? : ");
                int ii;
                int.TryParse(Console.ReadLine(), out ii);
                Console.Write("j? : ");
                int jj;
                int.TryParse(Console.ReadLine(), out jj);
                if (ii == 0 || jj == 0)
                {
                    Matrica m = new Matrica();
                    st.Push(m);
                }
                else
                {
                    int[] niz = new int[ii * jj];
                    Console.WriteLine("Unesite elemente matrice: ");
                    for (int x = 0; x < niz.Length; x++)
                        int.TryParse(Console.ReadLine(), out niz[x]);
                    Matrica m = new Matrica(ii, jj, niz);
                    st.Push(m);
                }
            }
            // I sad radis sa stekom sta hoces
            if (st.Count > 0)
            {
                Matrica mat = st.Pop();
                Console.WriteLine("Ovo je matrica:\n{0}", mat);
            }
            else
            {
                Console.WriteLine("Stek je prazan");
            }
        }
    }
}