1 / 1 / 1
Регистрация: 06.01.2013
Сообщений: 266

симметрия списка на С++

07.10.2013, 18:44. Показов 3669. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите переделать задачку с Паскаля на С++:Дан список из n целых чисел a1,a2,...,an.Определить,является ли он симметричным.
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
Uses Crt;
 
type
  Plist = ^TList;
  TList = record
    info: integer;
    pred,next : PList;
  end;
 
Var
  Head : PList;
  n : integer;
 
{создание двусвязного списка со сторожем}
Procedure MakeList(Var head: PList; Var n:integer);
var
  p,q:PList;
  k:integer;
 
Begin {MakeList}
 
  new(head);
  head^.next:=nil;
  head^.pred:=nil;
  p:=head;
  writeln('введите элементы списка до 0');
  read(k);
  while k<>0 do
    begin
      new(q);
      q^.info:=k;
      q^.pred:=p;
      q^.next:=nil;
      p^.next:=q;
      p:=q;
      read(k);
    end;
  head^.pred:=p;
  writeln;
end;{MakeList}
 
{вывод списка на экран}
Procedure PrintList(head : PList);
Var
 p: PList;
 
Begin  {PrintList}
  writeln('данный список: ');
  p:=head^.next;
  while p<>nil do
  begin
    write(p^.info:4);
    p:=p^.next;
  end;
  writeln;
end;{PrintList}
 
{проверка симметрии списка*}
Procedure SimList(head: PList; n:integer);
Var
  p,q:PList;
  c:integer;
 
Begin {SimList}
 writeln;
 writeln('проверяем симметрию:');
 p:=head^.pred;
 q:=head^.next;
 c:=0;
 while (p<>q) and (p^.next <>q)  do
    begin
      write(p^.info:4);
      write(q^.info:4);
 
      p:=p^.pred;
      q:=q^.next;
      if p^.info=q^.info  then inc(c);
    end;
   writeln;
 
  if c=(n div 2) then
    writeln('список симметричен*')
  else
    writeln('список не симметричен*');
end;
 
 
Begin
  ClrScr;
  writeln('введите количество элементов');
  readln(n);
  MakeList(head,n);
  PrintList(head);
  SimList(head,n);
  readkey;
end.{SimList}
Добавлено через 23 часа 33 минуты
вроде получилось,но список выводится всегда с 0
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
#include <iostream>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
#include <locale.h>
#include <iomanip>
 
using namespace std;
 
struct TList {
  int Info;
  TList *Next,*Pred;
};
typedef TList *PList;
 
//выделение памяти и заполнение полей нового элемента списка (возвращает указатель на него)
PList NewListNode(){
  PList Result = new TList;
  Result->Info = 0;
  Result->Next = NULL;
  Result->Pred = NULL;
  return Result;
}
//вывод списка на экран
void PrintList(PList List){
  cout << "список: ";
  while(List != NULL){
    cout << List->Info << " ";
    List = List->Next;
  }
  cout << "\n";
}
void MakeList(PList *Head, int n)
{
     if(n > 0){
    srand(time(NULL));
    *Head = NewListNode();
    PList p=*Head;
    cout<<"введите элементы списка до 0"<<endl;
    int k;
    cin>>k;
    while (k!=0)
    {
        PList q;
        q=NewListNode();
        q->Info=k;
        q->Pred=p;
        q->Next=NULL;
        p->Next=q;
        p=q;
        cin>>k;
    }
    (*Head)->Pred=p;
     }
}
 
void SimList(PList *Head, int n)
{
    PList p,q;
cout<<"проверяем симметрию:"<<endl;
p=(*Head)->Pred;
q=(*Head)->Next;
int c=0;
while((p!=q)&(p->Next!=q))
{
    cout<<setw(4)<<p->Info;
    cout<<setw(4)<<q->Info;
    cout<<endl;
    p=p->Pred;
    q=q->Next;
    if (p->Info==q->Info)
         c++;
}
    if (c==(n/2)){
        cout<<"список симметричен"<<endl;
    }else
    {cout<<"список не симметричен"<<endl;
    }
}
 
 
void main ()
{ setlocale(LC_ALL,"RUS");
  PList List;
    cout<<"введите количество элементов"<<endl;
    int n;
    cin>>n;
    MakeList(&List, n);
    PrintList(List);
    SimList(&List, n);
    getch();
    return ;
 
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.10.2013, 18:44
Ответы с готовыми решениями:

Симметрия
Многие из вас, вероятно, знакомы с понятием симметрии относительно прямой. Пусть на плоскости расположена прямая L и точка A. Точка B...

Симметрия
Последоваельнось чисел симмерична если слева на право и наоборот читается одинаково. Программе будет дана посл. чисел. Требуется определить...

Симметрия (Excel)
Как мона быстро заполнить таблицу? Пробовал транспонирование, но что-то не получилось. Может оно здесь и вообще не к селу. Делитесь...

1
1 / 1 / 1
Регистрация: 06.01.2013
Сообщений: 266
08.10.2013, 18:55  [ТС]
ах да еще в MakeList(PList *Head, int n) убрать надо все касающееся n,но почему список с нуля выводится?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.10.2013, 18:55
Помогаю со студенческими работами здесь

Скользящая симметрия
Нужно решить задачу 351. Задача в приложении. Или хотя бы информация дать про то как можно решать

Симметрия изображения
Добрый день, Подскажите пожалуйста как определить уровень симметрии в изображение. Поясняю: дано изображение 16х16 пикселей, необходимо...

симметрия текста
Составить программу, которая симметрично отображает текст строки s относительно его середины. Помогите пожалуйста.На php

Симметрия массива
Пожалуйста, помогите решить задачу!!! Дана матрица размером 4*4. Определить, является ли квадратная матрица симметричной, относительно...

Симметрия(8 класс)
Последовательность чисел назовем симметричной, если она одинаково читается как слева направо, так и справа налево. Например, следующие...


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

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

Новые блоги и статьи
Раскрываем внутренние механики Android с помощью контекста и манифеста
mobDevWorks 07.07.2025
Каждый Android-разработчик сталкивается с Context и манифестом буквально в первый день работы. Но много ли мы задумываемся о том, что скрывается за этими обыденными элементами? Я, честно говоря,. . .
API на базе FastAPI с Python за пару минут
AI_Generated 07.07.2025
FastAPI - это относительно молодой фреймворк для создания веб-API, который за короткое время заработал бешеную популярность в Python-сообществе. И не зря. Я помню, как впервые запустил приложение на. . .
Основы WebGL. Раскрашивание вершин с помощью VBO
8Observer8 05.07.2025
На русском https:/ / vkvideo. ru/ video-231374465_456239020 На английском https:/ / www. youtube. com/ watch?v=oskqtCrWns0 Исходники примера:
Мониторинг микросервисов с OpenTelemetry в Kubernetes
Mr. Docker 04.07.2025
Проблема наблюдаемости (observability) в Kubernetes - это не просто вопрос сбора логов или метрик. Это целый комплекс вызовов, которые возникают из-за самой природы контейнеризации и оркестрации. К. . .
Проблемы с Kotlin и Wasm при создании игры
GameUnited 03.07.2025
В современном мире разработки игр выбор технологии - это зачастую балансирование между удобством разработки, переносимостью и производительностью. Когда я решил создать свою первую веб-игру, мой. . .
Создаем микросервисы с Go и Kubernetes
golander 02.07.2025
Когда я только начинал с микросервисами, все спорили о том, какой язык юзать. Сейчас Go (или Golang) фактически захватил эту нишу. И вот почему этот язык настолько заходит для этих задач: . . .
C++23, квантовые вычисления и взаимодействие с Q#
bytestream 02.07.2025
Я всегда с некоторым скептицизмом относился к громким заявлениям о революциях в IT, но квантовые вычисления - это тот случай, когда революция действительно происходит прямо у нас на глазах. Последние. . .
Вот в чем сила LM.
Hrethgir 02.07.2025
как на английском будет “обслуживание“ Слово «обслуживание» на английском языке может переводиться несколькими способами в зависимости от контекста: * **Service** — самый распространённый. . .
Использование Keycloak со Spring Boot и интеграция Identity Provider
Javaican 01.07.2025
Два года назад я получил задачу, которая сначала показалась тривиальной: интегрировать корпоративную аутентификацию в микросервисную архитектуру. На тот момент у нас было семь Spring Boot приложений,. . .
Содержание темы с примерами на WebGL
8Observer8 01.07.2025
Все примеры из книги Мацуды и Ли в песочнице JSFiddle Пример выводит точку красного цвета размером 10 пикселей на WebGL 1. 0 и 2. 0 WebGL 1. 0. Передача координаты точки из главной программы в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru