سلام:
این خواسته شما در حد مکی نیست که کلا همه جزئیات رو براتون بیارم ولی راهنمائیتون میکنم بهر حال خودتون بکار بگیرید.
 
void *FirstLink;
void *LastLink;
typedef struct MyLinkList
{
void *NextLink;
void *PrevLink;
char *Data;
}MyLink;


1- با دستور new یه ساختار از حافظه بگیرید و آدرس اون رو داخل FirstLink قرار بدید.
2 - حالا شما اولین لینک که نقطه شروع است رو دارید و برای اینکه معلوم بشه فعلا قبل و بعد از این لینک هیچ لینکی قرار نداره بصورت زیر عمل کن
 
MyLink *mylink;
FirstLink = (void *)new char[sizeof(mylink)];
mylink = (MyLink *)FirstLink;
mylink->NextLink = NULL;
mylink->PrevLink = NULL;
LastLink = FirstLink;

3 - در فوق اولین لینک رو دارید حال به روش فوق با new دومین لینک رو ساخته و بصورت زیر جاگذاری کنید
 
mylink = (MyLink *)LastLink;
mylink->NextLink = (void *)new char[sizeof(mylink)];
mylink = (MyLink*)mylink->NextLink;
mylink->NextLink = NULL;

در اینجا آدرس PrevLink ساختار جدید رو با لینک قبلی وصل کنید
 
mylink->PrevLink = (void)LastLink;
LastLink = (void*)mylink;

به همین تر تیب با کمی تغییر میتونید یه سلسله لینک رو بهم وصل کنید
حالا با توجه به آدرسها و محل دقیق ساختارها توی حافظه میتونی عملیات خذف و درج رو روش انجام بیدی.
آسون نیست ولی کدهای بالا کمکتون میکنه.
موفق باشید...