Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Однонаправленный список не могу переделать!!! - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функция сортировки матрицы http://www.cyberforum.ru/cpp-beginners/thread228688.html
Функция сортировки матрицы по убыванию элементов 1 строки
C++ Перевод восьмеричного числа в другие системы счисления Программа для перевода восьмеричного числа в 10, 16 и 2 система счисления http://www.cyberforum.ru/cpp-beginners/thread228687.html
C++ Определить, является ли данный четырехугольник параллелограммом.
"Даны координаты вершин четырехугольника. Определить, является ли данный четырехугольник параллелограммом."
C++ Внешний файл
Нужно, чтобы: 1 программа:Брала числа из внешнего файла 2 программа:Брала матрицу из внешнего файла setlocale(LC_CTYPE,"Russian"); int size; int* m; cout<<"Введите количество чиел:"; ...
C++ Запись данных в текстовый файл http://www.cyberforum.ru/cpp-beginners/thread228673.html
Здравствуйте , помогите пожалуйста , есть программа которая считает по формулам величину h (компилировал в Visual C++ 2008): #include "stdafx.h" #include <stdio.h> #include "cmath" int main()...
C++ Движение вниз, верх (не очень гениальный вопрос) Всем доброго доброго времени суток. Вот я решил поэкспериментировать над движением точки. Извините грубо говоря за тупой вопрос. Разобрался как продвигать налево и направо, стирая предыдущую... подробнее

Показать сообщение отдельно
abd256
8 / 8 / 0
Регистрация: 08.01.2011
Сообщений: 9

Однонаправленный список не могу переделать!!! - C++

14.01.2011, 10:31. Просмотров 474. Ответов 6
Метки (Все метки)

Огромная просьба помочь с реализацией однонаправленного списка. Так то список есть НО! мне нужно чтобы он работал со строками а не с цифрами. Примерно так вывдил запрос
"Введите кол-во студентов:3
Введите Имя 1 студента:Александр
Введите группу: АУ1-09
Введите Имя 2 студента:Виталик
Введите группу: АУ2-09
Введите Имя 3 студента:Саша
Введите группу: АУ3-09

Александр АУ1-09
Виталик АУ2-09
Саша АУ3-09"

Очень прошу помогите. Я совсем запутался с этими символьными массивами как их впихивать в структуры...Надеюсь на помощ квалифицированных и знающих программистов т.е. на ВАС.
Заранее огромное спасибо ниже приведен мой код программы но только с цифрами.



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
#include <iostream.h>
#include <windows.h>
char NEWT[256];
char*RUS(char*TEXT) {
    CharToOem(TEXT,NEWT);
    return NEWT;}
 
 
struct Node
{
    int item;
    Node *next;  // указатель на следующий элемент списка
};
 
 
    Node *pHead;     // указатель на первый элемент списка
    Node *pPrev;    // указатель на последний элемент списка
    Node *pPred;        //указатель на предыдущий элемент       
    int count;      // количество элементов в списке
 
 
    void add(int item, int index);
    void print();
    Node* find(int index);
int main(void)
 
{int i,n,k;
Node*PV=new Node;
cout<<RUS("Пустой список создан...")<<endl;
 
{pHead = NULL;
count = 0;}
cout <<RUS("Ввести количество элементов: ")<< endl;
                cin>>n;
                cout <<RUS("Ввести элементы списка: ")<< endl;
                for(i = 0; i < n; i++)
                {cin>>k;
                add(k,i);}
print();
return 0;}
 
void add(int item,int index)
{
    Node *PV = new Node;
    PV->item = item;
    
    if  (pHead == NULL)
    {PV->next = NULL;
      pHead = PV;
      pPred=PV;
      count=1;}
    else 
           
    {pPred=find(index);
    PV->next=pPred->next;
    pPred->next=PV;
    count++;}          
}
void print()
         {  Node *pPV = pHead;
    if (pPV==NULL) cout<<RUS("Список пуст!")<<endl;
    
         while(pPV != NULL)
     {
        cout << pPV->item << " ";
        pPV = pPV->next;
     }
    cout << endl << count << endl;
}
 
 
Node* find(int index) 
{       
    if (index<1) return NULL;
        Node*PV=new Node;
        PV=pHead;
        for (int i=1;i<index;i++)
            PV=PV->next;
    if (PV==NULL) return NULL;
    return PV;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru