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

Списки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удаление из списка двух повторяющихся элементов http://www.cyberforum.ru/cpp-beginners/thread315193.html
Дан список из n целых чисел a1,a2,...an. Удалить из списка все элементы, входящие в него в точности два раза. #include <iostream.h> #include <conio.h> struct list { int info; list *next,*pred; }; void MakeL(list *&head)
C++ 64битные типы Почему в long long и unsigned __int64 не работает сдвил влево,вправо на более чем 31 бит. такой код long long j; j=1<<63; cout<<j; http://www.cyberforum.ru/cpp-beginners/thread315184.html
C++ вывод
Здравствуйте!!!Очень буду признательна, тому, кто поможет... код есть...нужно чтобы выводило сетку, тоесть все Х и У.....а не только, Х и У, который я хочу найти(задаю))) //************Interpoljacija Nutona**************** double func(double x) { return pow(2,x)-log(1+x); } void njyton(double N,double p_x,vector<double> &x,vector<double> &c) {
Программа-драйвер сканер C++
Нужно создать объявление класа. Также сделать программу - драйвер, которая демонстрирует роботу класса. Наследственный класс Scaner. Атрибуты: char* scrBuf; Команды для функции Execute(): “Scan” – заполняет буфер случайными даными. “Read” – загружает текст в prm - розсматривать как char*. “Clear” – чистит буфер.
C++ Чтение байтов из строки hex-символов http://www.cyberforum.ru/cpp-beginners/thread315146.html
Есть файл, состоящий из строк вида "090A0B0C0D0E0F20". Необходимо считать эту строку как массив байтов. Для приведенной строки должен получиться массив, содержащий: 9 10 11 12 13 14 15 16. Решил проблему, что называется, в лоб (несколько упрощенный вариант): ...... ifstream f("some_file"); iostringstream strstrm; string str; char bc = "00";
C++ Функция для переворота двухмерного массива помоги пожалуйста закончить решение задачки. Передать двухмерный массив в шаблонную функция которая возвращает перевернутый массив. #include "stdafx.h" #include <iostream> using namespace std; template<class T> inline T* rev( T* arg) { n = sizeof(arg)/(2*sizeof(T)); T* rev_mass = new T; подробнее

Показать сообщение отдельно
elekctra
Сообщений: n/a

Списки - C++

07.06.2011, 18:41. Просмотров 290. Ответов 0
Метки (Все метки)

Нужно создать однонаправленный список,для этого реализовать функции работы со списком:
-добавление нового элемента;
-вывод/удаление k-того элемента от текущей позиции влево;
-вывод/удаление текущего элемента;
-поиск элемента по значению;
-печать всего списка.

Вот что я смогла сделать
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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <ctype.h>
typedef struct list
{
int info;
struct list *next;
}list;
void enqueue(list **l)
{
list *prev, *cur;
prev=new list;
prev->info=0;
prev->next=NULL;
*l = prev;
int n=0,i;
 
printf("Enter size:");
scanf("%d", &n);
 
for( i=1; i<=n; i++)
{
cur = new list;
prev->next = cur;
cur->next = NULL;
printf("Enter element %d: ",i);
scanf("%d",&cur->info);
prev = prev->next;
}
}
int insert (list **l, int i)
{
    list *new_n;
    list *prev, *cur;
    new_n=(list*)malloc(sizeof(list));
    if(new_n==NULL) return -1;
    if(*l==NULL)
    {
        *l=new_n;
        new_n->next =NULL;
        return 1;
    }
    cur=*l;
    while(cur)
    {
        prev=cur;
        cur=cur->next ;
        if((cur!=NULL)&&(cur->info>i)) break;
    }
        if((*l)->info<i)
        {
            new_n->next =cur;
            prev->next =new_n;
            printf("new_n %d\n",new_n);
            printf("%d\n",cur);
            printf("prev=%d\n",prev);
        }
        else
        {
            new_n->next =*l;
            printf("l=%d ",*l);
            *l=new_n;
            printf("new_n %d\n",new_n);
            printf("l  %d ",*l);
        }
        return 1;
}
void display(list *l)
{
  while (l!=NULL)
  {
      printf("%d ",l->info);
      l=l->next;
  }
}
int main()
{
int i;
list *l=NULL;
enqueue(&l);
puts("input i");
scanf("%d",&i);
insert(&l,i);
display(l);
}
Новый элемент не добавляется,вместо него добавляется какое-то странное число.
Помогите пожалуйста.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru