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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kzpromo
Сообщений: n/a
#1

Линейный список - C++

07.05.2010, 18:57. Просмотров 416. Ответов 0
Метки нет (Все метки)

Привет.Помогите завершить задачу
Организация линейного списка.
Вылетает ошибка cpu tread при вводе данных
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct listNode{ char data; struct listNode *nextPtr; };
typedef struct listNode LISTNODE;
typedef LISTNODE *LISTNODEPTR;
 
void insert(LISTNODEPTR *, char);
char delet(LISTNODEPTR *, char);
int isEmpty(LISTNODEPTR);
void printList(LISTNODEPTR);
void instructions(void);
 
main() {
LISTNODEPTR startPtr = NULL;
int choice;
char item;
instructions();
scanf("%d", &choice);
while(choice!=3) {
switch(choice) {
case 1: printf("ENTER a character: "); scanf("%s", item);
insert(&startPtr, item); printList(startPtr);
case 2: if(!isEmpty(startPtr))
{ printf("ENTER character to be deleted: "); scanf("\n%s", &item);
if(delet(&startPtr, item)) {printf("%s deleted.\n", item); printList(startPtr);}
else printf("%s not found.\n\n", item);}
else printf("LIST IS EMPTY.\n\n");
break;
default: printf("Invalid choice. \n\n");
instructions();
break;
}
printf("&"); scanf("%d", &choice);
}
printf("End of run.\n");
return 0;
}
void instructions(void)
{
printf("Enter your choice:\n",
       "1 to insert an element into the list.\n",
       "2 to delete an element from the list.\n",
       "3 to end/\n");
}
 
void insert(LISTNODEPTR *sPtr, char value)
{ LISTNODEPTR newPtr, previousPtr, currentPtr;
newPtr = new LISTNODE;
if(newPtr != NULL)
{ newPtr->data = value;
  newPtr->nextPtr = NULL;
  previousPtr = NULL;
  currentPtr = *sPtr;
 
  while(currentPtr != NULL && value > currentPtr->data)
  {
  previousPtr = currentPtr; currentPtr = currentPtr->nextPtr; }
  if(previousPtr == NULL) { newPtr->nextPtr = *sPtr; *sPtr = newPtr; }
  else {previousPtr->nextPtr = newPtr;
  newPtr->nextPtr = currentPtr;}
  }
  else
  printf("%c not inserted. No memory avaliable. \n", value);
  }
  char delet(LISTNODEPTR *sPtr, char value)
  {
  LISTNODEPTR previousPtr, currentPtr, tempPtr;
  if(value == (*sPtr)->data) {
  tempPtr = *sPtr;
  *sPtr = (*sPtr)->nextPtr;
  free(tempPtr);
  return value;
  }
  else { previousPtr = *sPtr; currentPtr = (*sPtr)->nextPtr;
  while(currentPtr != NULL && currentPtr->data != value) {
  previousPtr = currentPtr;
  currentPtr = currentPtr->nextPtr;
  }
  if(currentPtr != NULL) {
  tempPtr = currentPtr;
  previousPtr->nextPtr = currentPtr->nextPtr;
  free(tempPtr); return value;
  } } return '\0';
  }
 
int isEmpty(LISTNODEPTR sPtr)
{
return sPtr == NULL;
}
 
void printList(LISTNODEPTR currentPtr)
{ if(currentPtr == NULL) printf("LIST IS EMPTY.\n\n");
else { printf("The list is:\n");
while(currentPtr!= NULL) {
printf("%s->", currentPtr->data); currentPtr = currentPtr->nextPtr;
}
printf("NULL\n\n"); }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2010, 18:57     Линейный список
Посмотрите здесь:

Линейный список - C++
Есть такая детская считалка: n детей стали в круг. Начиная отсчет от первого, убирают каждого k-го ребёнка, замыкая круг после каждого...

Линейный список - C++
Нужно написать курсовую по с++, не используя стандартных методов. Подскажите пожалуйста, с чего начать? Текст допомоги для деякої...

Линейный список - C++
Текст помощи организовано как линейный список. каждая компонента текста помощи содержит пояснение к этому термину. Составить программу...

Линейный двусвязный список - C++
Список задан структурой struct *node { char info; node *prev; node *next; }; и была введена некоторая последовательность...

Линейный список. Картотека - C++
Картотека: Адрес Номер Тип Для представления картотеки в ОП ПЭВМ воспользоваться структурой данных – ЛОС (линейный однонапр...

Линейный однонаправленный список - C++
Есть программа, которая инициализирует, заполняет и удаляет список. При компиляции появляется ошибка, что c и m в функции main() не...

Одноправленный линейный список - C++
Дайте идею пожалуйста создать пользовательский тип данных который создает массив переменной длины с использованием одноправленного...

Программа на линейный список - C++
Есть программа... Помогите сделать её же, но ввиде линейного списка. Вот условие задачи: (Автоматизированная информационная...

Вставка в линейный список - C++
Привет всем, не пойму почему функция insert не правильно работает(, а в частности, установление нового узла с предыдущим. После вставки...

Двусвязный линейный список - C++
Помогите пожалуйста написать эти программы :( Двусвязный линейный список, Быстрая сортировка ,Пузырьковая с...

Линейный односвязный список - C++
List *begin = NULL; begin = new List; List *begin1 = NULL; begin1 = new List; List *begin2 = NULL; begin2 = new List; List...

Линейный динамический список - C++
1. Напишите программу, создающую линейный динамический список, указанный в задании. Значения элементов вводятся с консоли. Вам понадобятся...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru