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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2012, 15:09   #1
mazzahaker
Пользователь
 
Регистрация: 04.12.2011
Сообщений: 23
По умолчанию Объединить 2 списка

Необходимо к списку (в конец) добавить заданное число элементов, не обращаясь в явном виде к спискам (нельзя использовать ->)
У меня есть функции, которые надо упорядочить и доделать программу.
Сначала надо считать из 1 файла список - затем считать из другого список и прикрепить N-ное число элементов к первому и вывести в файл, в самом конце надо удалить список.
Вот мои наработи:
Код:
#include <iostream>
#include <math.h>
using namespace std;
 
typedef struct Info
{
    char *p;
    int A[30];
};
typedef struct Info
{
    D*next
};D;
 
struct Form
{
    D*first, *lvr, *last, *prev;
}
 
void set * - установка
тип get * - просмотр
 
void setp (D*w, char *tmp)
{ w->p=tmp;}
 
void setp2 (D*w, char A)
{w->p=(char*)malloc(sizeof(char))
w->p[0]=A;
}
получение
 
char *getp (D*w)
{
    return p;}
char getpa (D*w, unsigned i)
{
    return w->p[i];
}
 
get 2_1 (D*w, unsigned i, char *res)
{
    if ((0<=i)&&(i<w->N))
    { *res=w->p[i]; return i;}
    else return 0;
}
 
иначе ошибка
 
void delp (D*w)
{
    if (w->p!=NULL) free (w->p);}
 
void Init (Form *F)
{
    F->first=NULL; F->cvr=NULL;......}
char Empty (Form *F)
{ if (F->first=NULL) retutn 1;
else return 0; }
void setfirst (Form*F, D* tmp)
{
    F->first=tmp}
D*getfirst (Form*F)
{ return F->first}
cvr, prev все также
 
 
void setnext (D*w,D*tmp)
{
    w->next=tmp}
D*getnext (D*w)
w->p=q->p;
 
for (i=0;i<70;i++)
    w[i]=q->A[i];}
 
    void setInfo2 (D*w, char T[70], int N)
    {
        w->p=(char*)malloc(N);
        for (...) setp2
            p[i]=...
            for(...)
                w->A[i]=[Ti];}
 
 
    D*search - ее не надо, у меня в проге такого не надо 
 
        вставка в начало
 
        D*getfirst (Form*F)
    {
        cvr=first; prev=NULL;}
 
    void firstset (Form *F)
    { set next (tmp, getfirst (F);
    setfirst (F, tmp);
    }
    в произвольное место
 
        void othercert (Form *F)
    {
        D*tmp; tmp=(D*)malloc(sizeof(b)); if (search(F,"!")==1...
        setnext (tmp,getnext(getlur(F);
        setnext (getcvr (F), tmp); }
    else 
    {setnext (tmp, NULL);
    setnext (getprev (F), tmp);
    }
    return (F,tmp);}
 
    void getnext (Form *F)
    { prev=cvr;
    cvr=getnext(cvr(F));}
 
 
 
    в конец
 
        void add (Form *F, int A)
    {if (A==1) firInsert(F); else otherprev(f);
    ...
    }
 
 
 
    удаление
 
        firDel (Form *F)
    {
        if (Empty (F)==0)
        {
            D*tmp; tmp=getfirst(F);
            setfirst(F); getnext (F);
            free (tmp);
        }
    }
mazzahaker вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как по вводу первых букв слова из списка подхватывать возможные вариации из списка 7EBEP Microsoft Office Excel 2 05.03.2012 11:11
Как сделать блокирование на определенном сайте из списка запрещенных IP и из определенного списка рефералов ? DeDoK PHP 7 05.12.2011 03:46
Составить программу, которая формирует 2 списка, и написать процедуру присоединения 2го списка к 1му Neitrosha Помощь студентам 7 25.02.2011 21:18
Объединить 2 макроса в 1 1134 Microsoft Office Excel 5 07.07.2010 16:09
Удаление последнего элемента из списка и реверс этого списка. Goose Общие вопросы C/C++ 8 16.05.2010 16:12