双向循环链表删除节点有关问题!高手帮小弟我看看哪出错了

双向循环链表删除节点问题!!高手帮我看看哪出错了!
#include <iostream.h>
#include <malloc.h>

typedef   struct   node{
int   num;
struct   node   *next;
struct   node   *prior;
}*Linklist;            

int   main(void)
{
Linklist   head=NULL;     //头结点..这是一个不带头节点的链表
Linklist   guid=NULL;     //游标..遍例链表用的.
Linklist   temp=NULL;     //新节点
int   con=0;                     //   节点数
for(int   i=1;i <=10;i++)
{
temp=(Linklist)malloc(sizeof(Linklist));
con++;
temp-> num=i;
temp-> next=NULL;
temp-> prior=NULL;
if(head==NULL)
{
head=temp;
head-> next=temp;
head-> prior=temp;
guid=temp;
}
else
{
guid-> next=temp;
guid-> prior=temp;
temp-> next=head;
temp-> prior=head;
guid=temp;
}
}

guid=head;
for(int   j=1;j <=con;j++)
{
cout < <guid-> num < <endl;
guid=guid-> next;
}
/*
guid=head;
for(int   k=1;k <=con;k++)
{
guid=head;
head=head-> next;
guid-> next-> prior=guid-> prior;
guid-> prior-> next=guid-> next;
delete   guid;
cout < < "=========== " < <endl;
}
            注释里面出问题..上面的建表..以及打印出来都没有问题..
            如果是被删除的.另外两个指针指向的问题的话..我把它们都指向NULL
            也没有用..这个问题困扰我几天了..看了好多资料..还是没有弄懂.
            高手们.帮帮小弟吧..刚刚申请号..没有分数..见谅...
*/
return   0;
}


------解决方案--------------------
有分了记得报答偶