anna-maria Δημοσ. 13 Δεκεμβρίου 2007 Δημοσ. 13 Δεκεμβρίου 2007 parakaloume deikste prosoxi xreiazomaste tin voithia sas sxetika me tin ilopoiisi mias stack:opou arxika tin kataskeuazoume kai meta pragmatopoioume push,meta pop,anagnosi tis korifis kai katastrofi tis stack(me dinamiki desmeusi mnimis).kai ola auta se glwssa programmatismou C++ euxaristoume!!!!
georgemarios Δημοσ. 13 Δεκεμβρίου 2007 Δημοσ. 13 Δεκεμβρίου 2007 anna-maria δώσε προσοχή η υλοποίηση στοιβας είναι απελπιστικά τετριμένο θέμα και θα βρεις πολλα παραδειγματα στο internet ένα πχ αν υπαρχει κάτι συγκεκριμενο στο οποίο θες διευκρίνηση, εδω είμαστε
bokarinho Δημοσ. 13 Δεκεμβρίου 2007 Δημοσ. 13 Δεκεμβρίου 2007 parakaloume deikste prosoxi xreiazomaste tin voithia sas sxetika me tin ilopoiisi mias stack:opou arxika tin kataskeuazoume kai meta pragmatopoioume push,meta pop,anagnosi tis korifis kai katastrofi tis stack(me dinamiki desmeusi mnimis).kai ola auta se glwssa programmatismou C++euxaristoume!!!! Πάντως με την STL καθάρισες μέσα σε 5 λεπτά και πολύ σου λέω... > //--------------------------------------------------------------------------- #include <iostream> /* Includes STL stack */ #include <stack> using namespace std; #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused int main(int argc, char* argv[]) { /* Declare a stack. */ stack <int> s; int Poped = 0; int i, Cnt = 0, Val = 0; cout << "Enter the number of items you want to add in stack: "; cin >> Cnt; for(i = 0; i < Cnt; i++) { cout << "Enter the value you want to add:"; cin >> Val; /* Push some elements in our Stack. */ s.push(Val); } /* Show our top Value. */ cout << "Top of stack is:" << s.top() << endl; /* Lets pop some items */ while(1) { if(s.empty()) { cout << "Empty stack.." << endl; break; } else { Poped = s.top(); cout << "Item Poped was:" << Poped << endl; s.pop(); } } system("PAUSE"); return 0; } //---------------------------------------------------------------------------
georgemarios Δημοσ. 14 Δεκεμβρίου 2007 Δημοσ. 14 Δεκεμβρίου 2007 σιγουρα, αλλα αμφιβαλε αν ο καθηγητης τους θελει αυτο.... μαλλον πρεπει να την υλοποιησουν οι ιδιοι
bokarinho Δημοσ. 14 Δεκεμβρίου 2007 Δημοσ. 14 Δεκεμβρίου 2007 σιγουρα, αλλα αμφιβαλε αν ο καθηγητης τους θελει αυτο.... μαλλον πρεπει να την υλοποιησουν οι ιδιοι Ε τότε ας πάρουν μία λίστα στην C++ για να αποθηκεύουν ακέραιους στους κόμβους της. Μάλιστα είναι και διπλά συνδεδεμένη, έτσι για να μην μπορούν να την χρησιμοποιήσουν στο 1α που έχουν, αλλά μπορούν εύκολα να την αλλάξουν. Είναι σε δύο αρχεία, το ένα είναι το list.h και το άλλο το list.cpp. Έτσι: list.h > #ifndef LIST_H #define LIST_H /* Our node structure */ typedef struct Node { struct Node(int data) { this->data = data; previous = NULL; next = NULL; } int data; struct Node *previous; struct Node *next; }NODE; /* Our list. */ class LinkedList{ public: LinkedList(); ~LinkedList(); void InsertNode(int); void DisplayNodes() const; void DestroyList(); private: NODE *front; NODE *back; }; #endif list.cpp > //--------------------------------------------------------------------------- #include <iostream> #include "list.h" using namespace std; #pragma hdrstop /*Declare our function here. */ /* Constructor. */ LinkedList::LinkedList() { front = NULL; back = NULL; } /* Destructor. */ LinkedList::~LinkedList() { DestroyList(); } void LinkedList::InsertNode(int data) { NODE *n = new NODE(data); if(back == NULL) { back = n; front = n; } else { back->next = n; n->previous = back; back = n; } } void LinkedList::DisplayNodes() const { cout << "Nodes:" << endl; NODE *temp = front; while(temp) { cout << temp->data << endl; temp = temp->next; } } void LinkedList::DestroyList() { NODE *temp = back; while(temp) { NODE *temp2 = temp; temp = temp->previous; delete temp2; } back = NULL; front = NULL; } //--------------------------------------------------------------------------- #pragma argsused int main(int argc, char* argv[]) { LinkedList *list = new LinkedList(); list->InsertNode(10); list->InsertNode(100); list->InsertNode(1000); list->DisplayNodes(); list->DestroyList(); system("PAUSE"); return 0; } //---------------------------------------------------------------------------
anna-maria Δημοσ. 14 Δεκεμβρίου 2007 Μέλος Δημοσ. 14 Δεκεμβρίου 2007 basika exoume ksekinisi kati tetoio: stack::Create(int size) { n=size; top=-1; Array=malloc(n*sizeof(int)); } void stack::Push(int value) { top++; if(top>=n-1) return; Array[top]=value; } int stack::Pop() { if(top==-1) return(-1); int x; x=Array[top]; top--; return(x); } stack.h class stack { private: int n; int top; int *Array; public: void Push(int value); int Pop(); Creat(int size); } sas euxaristoume pou mas voithate
bokarinho Δημοσ. 14 Δεκεμβρίου 2007 Δημοσ. 14 Δεκεμβρίου 2007 basika exoume ksekinisi kati tetoio:stack::Create(int size) { n=size; top=-1; Array=malloc(n*sizeof(int)); } void stack::Push(int value) { top++; if(top>=n-1) return; Array[top]=value; } int stack::Pop() { if(top==-1) return(-1); int x; x=Array[top]; top--; return(x); } stack.h class stack { private: int n; int top; int *Array; public: void Push(int value); int Pop(); Creat(int size); } sas euxaristoume pou mas voithate Βασικά μην κάνεις copy - paste των κώδικα σου μέσα στο Empty post, βάλτον μέσα σε php και /php tags τα οποία να είναι μέσα στο [] ή απλά πάτα το κουμπί που γράφει php και βάλε τον κώδικα ανάμεσα τους. Κατόπιν, μην χρησιμοποιείς C-οειδής συναρτήσεις όπως η malloc στην C++, υπάρχει η new. Καλά τα πας γενικά φτιάξε και 2 συναρτήσεις για άδεια, γεμάτη και να προσέχεις να μην αυξάνεις το top στην push πριν ελέξεις για το αν είναι γεμάτη, κάνε ένα try, throw για το αν είναι γεμάτη, μετά βάλε το στοιχείο στην στοίβα array[top] = element και μετά top++; OK?
anna-maria Δημοσ. 14 Δεκεμβρίου 2007 Μέλος Δημοσ. 14 Δεκεμβρίου 2007 ok!Τώρα μαθαίνουμε C++!!!είμαστε πολύ αρχάριες!!!για την new το κατάλαβα αλλά try, throw τι εννοείς???
bokarinho Δημοσ. 14 Δεκεμβρίου 2007 Δημοσ. 14 Δεκεμβρίου 2007 ok!Τώρα μαθαίνουμε C++!!!είμαστε πολύ αρχάριες!!!για την new το κατάλαβα αλλά try, throw τι εννοείς??? Τελικά είστε 2? Καλό.... Γεια σου λοιπόν 'Αννα και γεια σου Μαρία....(Sarbel...lol). Λοιπόν ξέχασε το αυτό που σου είπα για το try και το throw είναι για να ελέγχεις τον κώδικα σου με σφάλματα, γίνεται throw ένα exception όποτε γίνεται λάθος πχ underflow, overflow, success.... Σε τι σχολή είστε? Αν δεν θέλετε να φανεί στείλτε prive...
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.