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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2010, 23:24   #1
Sultan237
 
Регистрация: 03.03.2010
Сообщений: 7
Восклицание Мин. элемент. односвязного списка в СИ

Здраствуйте! Буду очень благодарен если кто-нибудь поможет с программой на СИ!
Задание: Найти 5 элементов односвязного списка и переместить их в конец! Использовать при этом динамическое выделение памяти и всяческие проверки(например: существует ли список или есть ли в нем элементы)
Вот что получилось(дальше я не знаю как делать, этот код можно сказать рабочий его только подкорректировать немного, но я не знаю...уже мозг плавится):
Код:
#include "stdafx.h"
#include <stdio.h>

struct Node
{
    int element;
    Node *next;
}*head=NULL,*last;


void AddItem(int eleme)
{
    struct Node *pElem;
	pElem = new Node; pElem->element=eleme;
	
	pElem->next = NULL;
	
    if(!head)
    {
        head= pElem;
        last=head;
        return;
    }
        last->next=pElem;
    last=pElem;
}

void PrintList()
{
	Node *elem = head;
	while (elem) 
	{
		printf("%d\n", elem->element);
		elem = elem->next;
	}
}

void pereItems()
{
    struct Node *u, *elem;
    int min=0, i=0;
    elem = head;
    u=head;
    for (elem=*first->next;elem->next!=NULL;elem=elem->next) // пока не дошли до конца
    { 
        if (elem->element<min)
        { 
            min=elem->element;
            break;
            //u = u->next; 
        }
        u=u->next;

    }
    u->next=elem->next;
    finish->next=elem;
    elem->next=NULL;
}

int _tmain(int argc, _TCHAR* argv[])
{
    int *pI, k, t, i;

    printf ("VVedite kol-vo elementov spiska ");
    scanf ("%d", &k);
    pI = new int [k];
    if ( pI == NULL ) 
    {
        printf("Не удалось выделить память");
        return 0;
    }
    
	for(i=0;i<k;i++)
    {
        scanf("%d",&t);
		AddItem(t);
    }

	pereItems();
	PrintList();
    delete pI;
	return 0;

}
пишу в MVS 2008

по факту отредактировать нужно эту чать
Код:
void pereItems()
{
    struct Node *u, *elem;
    int min=0, i=0;
    elem = head;
    u=head;
    for (elem=*first->next;elem->next!=NULL;elem=elem->next) // пока не дошли до конца
    { 
        if (elem->element<min)
        { 
            min=elem->element;
            break;
            //u = u->next; 
        }
        u=u->next;

    }
    u->next=elem->next;
    finish->next=elem;
    elem->next=NULL;
}
и добавить проверку...часть проверки я добавил вроде это все что должно быть...

Последний раз редактировалось Sultan237; 22.03.2010 в 23:42.
Sultan237 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка односвязного списка btf Общие вопросы C/C++ 0 15.02.2010 14:40
Cортировка односвязного списка alesfoss Общие вопросы C/C++ 3 30.03.2009 19:46
Получить новый одномерный массив В,каждый элемент которого равен мин элементу строк исходной матрицы Artimbulidor Помощь студентам 6 29.12.2008 18:51
Выделить элемент списка Иллидан Microsoft Office Word 5 23.09.2008 09:33
помогите удалить элемент из связанного списка kermit Помощь студентам 5 13.06.2008 10:14