Προς το περιεχόμενο

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • 0
anna-maria

stack

Ερώτηση

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!!!!

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

8 απαντήσεις σε αυτή την ερώτηση

Προτεινόμενες αναρτήσεις

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;
}
//---------------------------------------------------------------------------

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

anna-maria δώσε προσοχή

 

η υλοποίηση στοιβας είναι απελπιστικά τετριμένο θέμα και θα βρεις πολλα παραδειγματα στο internet

 

ένα πχ

 

αν υπαρχει κάτι συγκεκριμενο στο οποίο θες διευκρίνηση, εδω είμαστε

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

σιγουρα, αλλα αμφιβαλε αν ο καθηγητης τους θελει αυτο.... μαλλον πρεπει να την υλοποιησουν οι ιδιοι

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
σιγουρα, αλλα αμφιβαλε αν ο καθηγητης τους θελει αυτο.... μαλλον πρεπει να την υλοποιησουν οι ιδιοι

 

Ε τότε ας πάρουν μία λίστα στην 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;
}
//---------------------------------------------------------------------------

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

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

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
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?

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

ok!Τώρα μαθαίνουμε C++!!!είμαστε πολύ αρχάριες!!!για την new το κατάλαβα αλλά try, throw τι εννοείς???

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
ok!Τώρα μαθαίνουμε C++!!!είμαστε πολύ αρχάριες!!!για την new το κατάλαβα αλλά try, throw τι εννοείς???

 

Τελικά είστε 2? Καλό.... Γεια σου λοιπόν 'Αννα και γεια σου Μαρία....(Sarbel...lol).

Λοιπόν ξέχασε το αυτό που σου είπα για το try και το throw είναι για να ελέγχεις τον κώδικα σου με σφάλματα, γίνεται throw ένα exception όποτε γίνεται λάθος πχ underflow, overflow, success.... Σε τι σχολή είστε? Αν δεν θέλετε να φανεί στείλτε prive...

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
×
×
  • Δημιουργία νέου...