1 / 1 / 0
Регистрация: 06.06.2009
Сообщений: 35
|
|
1 | |
Динамические списки26.09.2009, 21:55. Показов 2366. Ответов 2
Метки нет (Все метки)
Всем привет. Подскажите пожалуста идеи. Дано стек, разработать функцию, которая формирует два новых стеки: первая содержит числа из исходного стека с нечетными номерами, а второе - с четными
0
|
26.09.2009, 21:55 | |
Ответы с готовыми решениями:
2
Динамические списки Динамические списки Динамические списки Динамические структуры: списки |
159 / 156 / 47
Регистрация: 29.04.2009
Сообщений: 636
|
||||||
26.09.2009, 22:10 | 2 | |||||
Сообщение было отмечено Wolandello как решение
Решение
*stack может быть и через & и как угодно.
0
|
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 21
|
|
11.10.2009, 20:13 | 3 |
Код
#include <cstdlib> #include <iostream> #include <string> using namespace std; enum {kIsSmaller, kIsLarger, kIsSame}; class Data { public: Data(int val):myValue(val){} ~Data(){} int Compare(const Data &); void Show() {cout << myValue << endl;} private: int myValue; }; int Data::Compare(const Data & theOtherData) { if(myValue < theOtherData.myValue) return kIsSmaller; if(myValue > theOtherData.myValue) return kIsLarger; else return kIsSame; } class Node; class HeadNode; class TailNode; class InternalNode; class Node { public: Node() {} virtual ~Node(){} virtual Node * Insert(Data * theData)=0; virtual void Show()=0; }; class InternalNode: public Node { public: InternalNode(Data * theDat, Node * next); ~InternalNode() { delete myNext; delete myData;} virtual Node * Insert(Data * theData); virtual void Show() {myData->Show(); myNext->Show();} private: Data * myData; Node * myNext; }; InternalNode::InternalNode(Data * theData, Node * next): myData(theData), myNext(next) {} Node * InternalNode::Insert(Data * theData) { int result = myData->Compare(*theData); switch(result) { case kIsSame: case kIsLarger: { InternalNode * dataNode = new InternalNode(theData, this); return dataNode; } case kIsSmaller: myNext=myNext->Insert(theData); return this; } return this; } class TailNode: public Node { public: TailNode(){} ~TailNode(){} virtual Node * Insert(Data * theData); virtual void Show() {} }; Node * TailNode::Insert(Data* theData) { InternalNode * dataNode = new InternalNode(theData, this); return dataNode; } class HeadNode: public Node { public: HeadNode(); ~HeadNode(){delete myNext;} virtual Node * Insert(Data * theData); virtual void Show() {myNext->Show();} private: Node * myNext; }; HeadNode::HeadNode() { myNext=new TailNode(); } Node * HeadNode::Insert(Data * theData) { myNext=myNext->Insert(theData); return this; } class LinkedList { public: LinkedList(); ~LinkedList(){delete myHead;} void Insert(Data * theData); void ShowAll() {myHead->Show();} private: HeadNode * myHead; }; LinkedList::LinkedList() { myHead = new HeadNode; } void LinkedList::Insert(Data * pData) { myHead->Insert(pData); } int main() { Data * pData; int val; LinkedList ll; for(;;) { cout << "What value? (0 to stop): "; cin >> val; if(!val) break; pData=new Data(val); ll.Insert(pData); } ll.ShowAll(); system("PAUSE"); return 0; } Объясните на сколько можно подробнее...
0
|
11.10.2009, 20:13 | |
11.10.2009, 20:13 | |
Помогаю со студенческими работами здесь
3
Динамические списки, жуть Динамические структуры: линейные списки Динамические структуры данных. Списки Динамические Списки!!!! Очень нужно...! Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |