#include<stdio.h>
#include<malloc.h>
typedef struct dupnode
{
int data;
struct dupnode *next,*prior;
}DUPNODE;
DUPNODE *create()
{
DUPNODE *head,*p,*q;
int a,n;
head=(DUPNODE*)malloc(sizeof(DUPNODE));
q=head;
printf("请输入结点个数:");
scanf("%d",&n);
if(n>0)
{
printf("输入列表为:");
while(n>0)
{
scanf("%d",&a);
p=(DUPNODE*)malloc(sizeof(DUPNODE));
p->data=a;
q->next=p;
p->prior=q;
q=p;
n--;
}
q->next=NULL;
return(head);
}
}
void insert(DUPNODE *p,int x)
{
DUPNODE *q;
q=(DUPNODE*)malloc(sizeof(DUPNODE));
q->data=x;
q->prior=p;
q->next=p->next;
p->next->prior=q;
p->next=p;
}
main()
{
int x,position;
int i=0,j=0;
DUPNODE *c,*d;
c=create();
d=c->next;
while(d!=NULL)
{
d=d->next;
j++;
}
d=c;
do
{
printf("请输入要插入的位置:");
scanf("%d",&position);
}while((position>j)||(position<0));
pritnf("请输入要插入的数:");
scanf("%d",&x);
while(i!=position)
{
d=d->next;
i++;
}
insert(d,x);
printf("列表为:");
while(c->next!=NULL)
{
c=c->next;
printf("%5d",d->data);
}
}
#include<malloc.h>
typedef struct dupnode
{
int data;
struct dupnode *next,*prior;
}DUPNODE;
DUPNODE *create()
{
DUPNODE *head,*p,*q;
int a,n;
head=(DUPNODE*)malloc(sizeof(DUPNODE));
q=head;
printf("请输入结点个数:");
scanf("%d",&n);
if(n>0)
{
printf("输入列表为:");
while(n>0)
{
scanf("%d",&a);
p=(DUPNODE*)malloc(sizeof(DUPNODE));
p->data=a;
q->next=p;
p->prior=q;
q=p;
n--;
}
q->next=NULL;
return(head);
}
}
void insert(DUPNODE *p,int x)
{
DUPNODE *q;
q=(DUPNODE*)malloc(sizeof(DUPNODE));
q->data=x;
q->prior=p;
q->next=p->next;
p->next->prior=q;
p->next=p;
}
main()
{
int x,position;
int i=0,j=0;
DUPNODE *c,*d;
c=create();
d=c->next;
while(d!=NULL)
{
d=d->next;
j++;
}
d=c;
do
{
printf("请输入要插入的位置:");
scanf("%d",&position);
}while((position>j)||(position<0));
pritnf("请输入要插入的数:");
scanf("%d",&x);
while(i!=position)
{
d=d->next;
i++;
}
insert(d,x);
printf("列表为:");
while(c->next!=NULL)
{
c=c->next;
printf("%5d",d->data);
}
}