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

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

Восстановить пароль Регистрация
 
kzpromo
Сообщений: n/a
07.05.2010, 18:57     Линейный список #1
Привет.Помогите завершить задачу
Организация линейного списка.
Вылетает ошибка 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++ линейный список на с++
C++ Линейный список
C++ Си:Линейный список
C++ Линейный список
C++ [C++] Линейный список
Линейный список C++
Линейный список C++

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

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

Текущее время: 12:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru