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

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

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

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

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

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

как бы создать функцию, с которой можно вставлять элемент после определённого элемента.
есть моя попотыка сообразить по наброскам преподавателя, но это явно не так как-то делаеться. Вот она:
Код:
void add(char value)
{
	p=new list;
	if(p==NULL) { printf("Error");getch();exit(1);}
	p->c=k1;
	p->next=NULL;
top=prev;
for(int i=0;top!=NULL;i++)
{
	if(value==k1)
	{
	p->next=top->next;
	}
	top->next=p; break;
}
top=top->next;
}
вот весь мой список:

Код:
struct list
{
	char c;
	list *next;
}*p,*top,*cur,*prev;

void push(char value);
void show();
void pop(char value);

int main()
{
	top=NULL;
	char key,value;
	int done=false;
	while(!done)
	{
		system("cls");
		show();
		printf("\nA)dd\nD)elete\nQ)uit\n");
		key=getchar();
		switch(toupper(key))
		{
		case 'A':
			value=getch();
			push(value);
			break;
		case 'D':
			printf("somthing for del:\n");
			value=getch();
			pop(value);
			break;
		case 'Q':
			done=true;
			break;
		}
	}
	return 0;
}

void push(char value)
{
	printf("\nInput:\n");
	p=new list;
	p->c=value;
	p->next=NULL;
	while(cur!=NULL && p->c > cur->c)
	{
	prev=cur;
	cur=cur->next;
	}
	if(prev==NULL)
	{
	p->next=top;
	top=p;
	}
	else
	{
	p->next=cur;
	prev->next=p;
	}
}
void pop(char value)
{
	prev=top;cur=top->next;
	if(value==top->c) 
	{
	p=top;
	top=top->next;
	free (p);
	}
	else
	{
	while(cur && cur->c!=value)
	{
	prev=cur;
	cur=cur->next;
	}
             if(cur!=NULL) 
	{
	p=cur;
	prev->next=cur->next;
	free (p);
	}
	}
}
void show()
{
	p=top;
	if(p==NULL) 
	printf("\nlist is empty\n");
	else 
	printf("\nLIST:\n");
	while(p)
	{
	printf("%c\n",p->c);
	p=p->next;
	}
}
zhenya.ya вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка элемента в одномерном массиве(код некорректен)) Эльмирочка Общие вопросы .NET 2 30.03.2010 17:41
Си -Расположить элементы в порядке возрастания от первого нулевого элемента до отрицательного элемента Freia Помощь студентам 17 13.12.2009 15:41
Вставка элемента в массив Yulya Помощь студентам 2 31.03.2009 10:34
Вставка элемента в массив Игорь777 Помощь студентам 1 04.12.2008 18:57
Вставка элемента в SelectDirectory mrandrey Общие вопросы Delphi 1 31.05.2007 20:25