0 / 0 / 0
Регистрация: 25.03.2010
Сообщений: 9
1

односвязные списки

25.03.2010, 23:01. Показов 1632. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуста
в проге нужно в методе класа List нужно вставить елементы с первого списка в второй после последнего вхождение заданого елемента,допустим
если есть
список
1 2 3 4
и список
2 3 4 2 5
и нужно вставить в второй список после последного вхождение елемента 2
будет
2 3 4 2 1 2 3 4 5
но у меня выскакивает ошибка при запуске програмы,связаная с методом void spus(List &t,int n)
_BLOCK_TYPE_IS_VALID(hHead->nBlockUse)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#include<iostream>
using namespace std;
struct Link{
    Link * next;
    int data;
    Link(int d=0):next(NULL),data(d){}
    ~Link(){}
};
class List{
private:
Link * head;
public:
    List():head(NULL){}
    List(const List & ls){
        if(!ls.head){
        head=0;
        return;}
        Link *temp=new Link(ls.head->data);
        head=temp;
        Link *Buf=ls.head->next;
        while(Buf){
        Link *temp2=new Link(Buf->data);
        temp->next=temp2;
        Buf=Buf->next;
        temp=temp2;
        }
    }
    List operator=(List &ls){
        if(!ls.head){
        head=0;
        return *this;}
        Link *temp=new Link(ls.head->data);
        head=temp;
        Link *Buf=ls.head->next;
        while(Buf){
        Link *temp2=new Link(Buf->data);
        temp->next=temp2;//
        Buf=Buf->next;
        temp=temp2;//
        return *this;
        }
    }
    
        ~List(){
        Link *Buf=head;
        while(head)
        {
            head=head->next;
            delete Buf;
            Buf=head;
        }
        }
        
        void add_end(int l){
            Link*temp=new Link(l);
            if(head==0)
            {
                head=temp;
            }
            else
            {
                Link *Buf=head;
                while(Buf->next){
                Buf=Buf->next;
                }
                Buf->next=temp;
            }
        }
        void show_all(){
            Link *temp=head;
            for(int i=1;temp;i++)
            {
                cout<<temp->data<<" ";
                temp=temp->next;
            }
        }
        void set_all(){
            int temp=1;
            while(temp!=0)
            {
                cin>>temp;
                if(temp==0)
                {
                    return;
                }
                else add_end(temp);
            }
        }
        int find_min()
        {
            int min=head->data;;
            for(Link *temp=head;temp!=NULL;temp=temp->next)
            {
                if((temp->data)<min)
                {
                    min=temp->data;
                }
            }
            return min;
        }
        void spus(List &t,int n)
        {
            Link *Buf=t.head;
            Link *node= new Link;
            while(Buf)
            {
                if(Buf->data==n)
                {                
                 node=Buf;
                }
              Buf=Buf->next;
            }
   if (node!= NULL){
    node->next=head;
   }
        }
    };
void main()
{
    int k;
    cin>>k;
    List t,t1;
    t.set_all();
    t1.set_all();
    t.spus(t1,k);
    t1.show_all();
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2010, 23:01
Ответы с готовыми решениями:

Односвязные списки
Всем доброго времени суток. Мне нужно реализовать вот эти операторы в односвязном списке: void...

односвязные списки С++
Дана последовательность символов s1 , s2 , . . . , sn ( n &gt;= 2 и заранее неизвестно)....

Односвязные списки
Задача: добавить в список 1 узлы, содержащие слова в списке 2, не совпадающие со словами списка...

Односвязные списки С++
Помогите пожалуйста с заданием: Необходимо создать список(из целых чисел) добавлением элемента в...

11
56 / 56 / 6
Регистрация: 23.10.2009
Сообщений: 250
26.03.2010, 01:30 2
какой у тебя компилятор? мало того что у меня компилировалось так еще и правильно работало
0
0 / 0 / 0
Регистрация: 25.03.2010
Сообщений: 9
27.03.2010, 12:31  [ТС] 3
Visual Studio
прога компилится,но в програме вибивает ерор
подскажите кто знает,уже все перепробывал,не получается (
0
56 / 56 / 6
Регистрация: 23.10.2009
Сообщений: 250
27.03.2010, 15:25 4
я тебе ничего не скажу, у меня все тесты проходит без проблем, пройдись F10 и F11 по коду PS у меня MSVS 2008
0
0 / 0 / 0
Регистрация: 25.03.2010
Сообщений: 9
27.03.2010, 15:32  [ТС] 5
пробывал на двох компютерах,не работает,не понимаю корень проблемы
дебагать пробывал,не нашел ничего (
0
56 / 56 / 6
Регистрация: 23.10.2009
Сообщений: 250
27.03.2010, 15:35 6
погодь у тебя на каком тесте сыпится, напиши ну там "6 5 4 6 4 6 0"
0
0 / 0 / 0
Регистрация: 25.03.2010
Сообщений: 9
27.03.2010, 15:36  [ТС] 7
у меня проблемы с методом void spus(List &t,int n)
а именно в 115 рядке
node->next=head;
если етот рядок закоментить,все работает,ничего не вилетает
0
56 / 56 / 6
Регистрация: 23.10.2009
Сообщений: 250
27.03.2010, 15:39 8
у меня вылетела в случае ели k=5 1-й 1 2 5 4 6 3 2 5 2-й 1 23 6 8 5 3 6 4 5 4 ща проверю, возмонно плохо находит максимум
0
0 / 0 / 0
Регистрация: 25.03.2010
Сообщений: 9
27.03.2010, 15:40  [ТС] 9
оно не должно находить максимум,оно должно находить последнее вхождение заданого елемента
0
56 / 56 / 6
Регистрация: 23.10.2009
Сообщений: 250
27.03.2010, 16:06 10
выложи тесты на которых гоняешь программу и номер студии в которой пишешь

Добавлено через 11 минут
на Windows7 у меня ничего не ссыпается.какая у тебя оь? Деструктор напиши! на линуксе у меня выскачила ошибка free().. - тобишь проблемы с очисткой памяти
0
0 / 0 / 0
Регистрация: 25.03.2010
Сообщений: 9
27.03.2010, 16:27  [ТС] 11
MS VS 2008
ХП
2
1 2 3 4 0
2 3 4 2 5 0
впрочем,вибивала ошибка и при вашем тесте
деструктор есть там
0
56 / 56 / 6
Регистрация: 23.10.2009
Сообщений: 250
27.03.2010, 16:32 12
я сейчас перепишу ее и дам тебе свой код скомпилить раскажешь про ошибки выполнения были небыли можешь написать мне в асю или скайп 424-038-793, breate.by
0
27.03.2010, 16:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.03.2010, 16:32
Помогаю со студенческими работами здесь

Односвязные списки
Есть программа которая должна выводить координаты точки (x.y.z) Ввод должен выполняться путем...

Односвязные списки
Вечер добрый) Сформировать список символов, оканчивающийся точкой. Заменить в списке символ “A” на...

Односвязные списки
помогите написать функцию которая меняет местами два элемента списка, заданные значением...

Односвязные списки
Помогите, никак не могу понять что делать.. Написал код самого линейного списка, а дальше завис.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru