![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 27.08.2011
Сообщений: 21
|
![]()
Создать базовый класс список. Реализовать на базе списка стек и очередь с
виртуальными функциями вставки и вытаскивания. вот задачка на Си я решал такие(насчет создание списка) и достаточно легко а тут я запнулся и не пойму как желать помогите ПЖЛСТ если можно исходником |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Ну так а как ты решал? Показывай функции - в класс их обернуть не сложно.
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 27.08.2011
Сообщений: 21
|
![]() Цитата:
#include <string.h> #include <stdio.h> #include <stdlib.h> struct people { char fam[20]; char im9i[10]; char ot4[20]; int voz; struct people *next; struct people *prev; }; struct people *P_New_struct,*start,*finich,*lol,* info; void vvod() { int i,n; //создание списка printf("kol-vo 4elovek\n"); scanf_s("%d", &n); for (i=0;i<n;i++) // весь этот цикл это ввод и создание списка %) { P_New_struct=(people *)calloc(n,sizeof(people )); printf ("vvedite familiI0\n"); scanf_s ("%s",&P_New_struct->fam,20); printf ("vvedite im9I\n"); scanf_s ("%s",&P_New_struct->im9i,10); printf ("vvedite ot4estvo\n"); scanf_s ("%s",&P_New_struct->ot4,20); printf ("vvedite vozrast\n"); scanf_s ("%d",&P_New_struct->voz); if (i==0) { P_New_struct->prev=0; P_New_struct->next=0; start=P_New_struct; finich=P_New_struct; } else { P_New_struct->prev=finich; P_New_struct->next=0; finich->next=P_New_struct; finich=P_New_struct; } } } void dobav() { //добавление элемента P_New_struct=(people *)calloc(2,sizeof(people )); printf ("vvedite familiI0\n"); // scanf_s ("%s",&P_New_struct->fam,20); // printf ("vvedite im9I\n"); // scanf_s ("%s",&P_New_struct->im9i,10); // printf ("vvedite ot4estvo\n"); // scanf_s ("%s",&P_New_struct->ot4,20);// printf ("vvedite vozrast\n"); // scanf_s ("%d",&P_New_struct->voz); // ВСЁ это - добавление элесмента P_New_struct->next=0; // P_New_struct->prev=finich; // finich->next=P_New_struct; // finich=P_New_struct; // } struct people *poisk(void) { char Fam[15]; struct people *bufer; bufer=start; printf("Vvedite Famil\n"); scanf_s("%s",&Fam,15); printf ("Familiy\tIm9\tOt4estvo\tAge\n\n") ; while(bufer) { if (!strcmp(Fam,bufer->fam)) { printf("%s\t",bufer->fam,20); printf("%s\t",bufer->im9i,10); printf("%s\t",bufer->ot4,20); printf("%i\t",bufer->voz); return bufer; } else {bufer=bufer->next;} } return 0; } //а это теоретически удаление элемента int del(void) { lol=poisk(); if(lol) { if (lol==start) { start=start->next; start->prev=0; free(lol); } else { if (lol==finich) { finich=finich->prev; finich->next=0; free(lol); } else { (lol->prev)->next=lol->next; (lol->next)->prev=lol->prev; } return 0; } } else {return 1;} printf("\n\nOk Famil iz spiska udalena\n"); } void vivod() { printf ("Familiy\tIm9\tOt4estvo\tAge\n\n") ; info=start; while (info) { printf("%s\t",info->fam,20); printf("%s\t",info->im9i,10); printf("%s\t",info->ot4,20); printf("%i\n",info->voz); info=info->next; } } void le_exit() { printf ("\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\ t\t\t\t\tnazhmite 0\n"); int k=1; while (k!=0) { scanf_s("%d",&k); } } int main(){ int q,exit=0; do { system("cls"); printf ("Sdelay vibor\n\n1.Sozdanie spiska\t2.Dobav elementa\t3.poisk\t4.delete\t5.vivo d\n\n"); printf ("\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t\t\ t\tExit (6)"); scanf_s("%d",&q); switch (q) { case 1:{system("cls");vvod();le_exit();b reak;} case 2:{system("cls");dobav();le_exit(); break;} case 3:{system("cls");poisk();le_exit(); break;} case 4:{system("cls");del();le_exit();br eak;} case 5:{system("cls");vivod();le_exit(); break;} case 6:{exit=1;break;} } }while (exit!=1); free(P_New_struct); } |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Разработайте класс, реализующий линейный двусвязный список | Аким Ба | Паскаль, Turbo Pascal, PascalABC.NET | 11 | 24.08.2011 23:08 |
Создать класс Date | ГлавБухОЙ | Помощь студентам | 5 | 13.06.2011 11:41 |
Как добавить Метод в класс Список с++ | lirikoff | Помощь студентам | 5 | 26.08.2010 20:08 |
Класс линейный список | valdemar593 | Помощь студентам | 2 | 19.04.2010 20:21 |
Создать Класс Heat | JNN | Общие вопросы C/C++ | 0 | 04.06.2009 00:53 |