Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Реализация стека 
:(
    Опции темы
tatu
Дата 14.12.2009, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 13.12.2009

Репутация: нет
Всего: -1



Люди помогите пожайлуста. Гоняю программу 3 дня...не понимаю почему у меня не пашет процедура которая меняет элементы с друг другом на заданных позициях.

Код

  public void swap(int x, int y)
        {
            if (x < y && x> 1)
            {
                int i = 0; int tmp = 0; int tmp1 = 0;
                El vsp = new El();
                vsp = top;
                while (vsp != null)
                {
                    i++;
                    if (i == x) { tmp = vsp.Data; }
                    vsp = vsp.next;

                }
                vsp = null;
                vsp = top; i = 0;
                while (vsp != null)
                {
                    i++;
                    if (i == y) { tmp1 = vsp.Data; }
                    vsp = vsp.next;
                }

                cut(x); cut(y);
                ins(x, tmp1);
                ins(y, tmp);
            }

        }



где cut и ins процедуры удаления элемента и вставки

Добавлено через 6 минут и 43 секунды
это сама программа

Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  myStec.rar 73,54 Kb
PM MAIL   Вверх
ДобренькийПапаша
Дата 14.12.2009, 20:29 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: 3
Всего: 7



Я не читал код, но полагаю, что дело в этом:
Вы оттуда откуда вызываете swap напишите swap(ref int x, ref int y).
И где сама функция определена аргументы с ключевым словом ref напишите.

Нет наверно, не поэтому. Скачал ваше программу. Написана плохо. Именования надо править. Ничего не понятно.
Когда вызываете swap передаёте аргументы как Int16, а сама функция Swap принимает int (Int32)...
Все кнопки именованы как buttonX, код у вас та ещё жесть)))

Я читать не буду больше)))

Это сообщение отредактировал(а) ДобренькийПапаша - 14.12.2009, 20:38


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
tatu
Дата 14.12.2009, 20:48 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 13.12.2009

Репутация: нет
Всего: -1



ну я только учусь..недавно просто разобрали....хочется зачет получить автоматом, чтобы избавиться от программирования.

Как подправить можно?
PM MAIL   Вверх
ДобренькийПапаша
Дата 14.12.2009, 21:10 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: 3
Всего: 7



Тут править всё нужно. От начала и до конца. Вообще так как задача реализовать стек очень популярная, то рекомендую погуглить и скопипастить уже нормальную реализацию. И разобраться в ней толком. Понять что у вас криво. Ну поработать немножко в общем. Если работать не хотите, то просто скопируйте где-нибудь. Этого добра я уверен вы много найдёте)))


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
tatu
Дата 14.12.2009, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 13.12.2009

Репутация: нет
Всего: -1



самое смешное что ищу в гугле и не нахожу....покачал учебников тоже не нашел...
PM MAIL   Вверх
ДобренькийПапаша
Дата 14.12.2009, 21:18 (ссылка)  | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: 3
Всего: 7



Можете преподу дать код на С++)))

А вот тут про очередь и стек в .NET.

Код


#include <iostream.h>
 
struct Node {   //структура Node – это список
 int d;         //элемент списка
 Node *p;       //указатель на следующий элемент списка (стека)
 };
 
void push(Node **top, int d);  //функция будет помещать элемент в стек
                               // top – указатель на вершину стека
pop(Node **top);               //функция будет извлекать элемент их стека
                               //вершина которого - top
 
void push(Node **top, int d)   
{ Node *pv = new Node;        //объявляем новую динамическую переменную типа Node
  pv->d=d;                    //записываем  значение, которое помещается в стек
  pv->p=*top;                 //связываем новый элемент стека с предыдущим
  *top=pv;                    //новый элемент стека становится его вершиной
}
 
int pop(Node **top)        
{ int temp=(*top)->d;    //извлекаем в переменную temp значение в вершине стека
  Node *pv=*top;         //запоминаем указатель на вершину стека, чтобы затем 
                         //освободить выделенную под него память   
  *top=(*top)->p;        //вершиной становится предшествующий top элемент
  delete pv;             //освобождаем память, тем самым удалили вершину
  return temp;           //возвращаем значение, которое было в вершине
}
 
 
int main()
{
 char v[24]="25 10 7 3 * + 1 1 + * +";
 clrscr();
 Node *top=0;
 int a,b;
 for (int i=0; i<=23; i++)
 {
    if (v[i] == '+') push(&top,pop(&top)+pop(&top));
    if (v[i] == '*') push(&top,pop(&top)*pop(&top));
    if ((v[i]>='0') && (v[i]<='9'))  push(&top,0);
    while ((v[i]>='0')&&(v[i]<='9')) push(&top,10*pop(&top)+(v[i++]-'0'));
 }
 cout<<pop(&top);
 return 0;
}



Это сообщение отредактировал(а) ДобренькийПапаша - 14.12.2009, 21:21


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
RWander
Дата 15.12.2009, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 349
Регистрация: 4.5.2006
Где: Russia.Udm.Izhevs k

Репутация: 1
Всего: 6



Вообще в .NET Framework есть готовый класс Stack (http://msdn.microsoft.com/ru-ru/library/system.collections.stack.aspx)
и его generic-реализация: http://msdn.microsoft.com/ru-ru/library/3278tedw.aspx


--------------------
Microsoft Certified Technology Specialist - ASP.NET Applications
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0793 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.