Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2010, 21:08   #1
zhenya.ya
Форумчанин
 
Регистрация: 29.11.2009
Сообщений: 142
Сообщение удаление в списке

Проблема: непонимаю как связать функуию pop() (ф-ция для удаления) и
информацию, которую я вручную ввожу с клавы.
Т.е. усли бы у меня были не строки, а символы:

Код:
void pop(char value);
...
value=p->aa;  //моя запись;
...
сase 'D':
printf("input for delete:\n");
value=getch();
pop(value);
break;
ВОТ ВЕСЬ КОД:
Код:
struct list{
        char aa[22];
        list *next;
        struct list2 *p2,*cur2,*prev2,*top2;
}*p,*top,*prev,*cur;
struct list2{
        char xx[22];
        list2 *next;
};

void push()
{
        top=0;
        int n,i,k=0;
        printf("\n size:\n");
        scanf("%i",&n);
        printf("\n Input:\n");
        for(;n;n--)
        {
                p=new list;
                scanf("%s",&p->aa);
                p->next=NULL;
                while(cur && p->aa >cur->aa)
                {
                        prev=cur;
                        cur=cur->next;
                }
                if(prev==NULL)
                {
                        p->next=top;
                        top=p;
                }
                else
                {
                        p->next=cur;
                        prev->next=p;
                }
        }
        p=top;
        while(p)
        {
                printf("%s",p->aa);
                printf("\n size (inside):\n");
                scanf("%i",&i);
                printf("\n input: ( push into inside\n");
                for(;i;i--)
                {
                        p->p2=new list2;
                        scanf("%s",&p->p2->xx);
                       if(!k){
                                p->top2=NULL;
								p->cur2=NULL;
								p->prev2=NULL;
                                k++;
                        }
                        p->p2->next=NULL;
                        while(p->cur2 && p->p2->xx > p->cur2->xx)
                        {
                                p->prev2=p->cur2;
                                p->cur2=p->cur2->next;
                        }
                        if(p->prev2==NULL)
                        {
                                p->p2->next=p->top2;
                                p->top2=p->p2;
                        }
                        else
                        {
                                p->p2->next=p->cur2;
								p->prev2=new list2;
                                p->prev2->next=p->p2;
                        }
                }
                k=0;
                p=p->next;
        }
}
void pop()
{
	prev=top;
	cur=top->next;
	if(p->aa==top->aa)
	{
p=top;
top=top->next;
free (p);
	}
	else
	{
		while( cur!=NULL && p->aa!=cur->aa)
		{
			prev=cur;
			cur=cur->next;
		}
if(cur!=NULL)
{
	p=cur;
	prev->next=cur->next;
free (p);
}
	}
}
void show()
{
        p=top;
        if(p==NULL) printf("\n list is empty\n");
        while(p)
        {
                printf(" %s",p->aa);
                p->p2=p->top2;
                while(p->p2)
                {
                        printf("\n    %s\n",p->p2->xx);
                        p->p2=p->p2->next;
                }
                p=p->next;
        }
		system("PAUSE");
}
int main()
{
	int done=false;
	char key;
	while(!done)
	{
		system("cls");
		printf("\nA)dd\nD)elete\nQ)uit\nS)how\n");
		key=getchar();
		switch(toupper(key))
		{
		case 'A':
        push();
		break;
		case 'S':
        show();
		break;
		case 'D':
			
			printf("\n input for del:\n");
			
			pop();
			break;
		case 'Q':
			done=true;
			break;
		}
	}
	return 0;
}
zhenya.ya вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Последнее значение в списке Maruff Microsoft Office Excel 13 16.02.2017 12:43
ЗАмена в списке meizy Помощь студентам 2 03.06.2010 22:31
Ник в списке присутствующих Sibedir О форуме и сайтах клуба 2 29.09.2008 18:18
поиск IP в списке TaTT DoGG PHP 6 13.08.2008 18:53
количество фамилий в списке Гуля Паскаль, Turbo Pascal, PascalABC.NET 8 29.04.2008 13:01