试编写一个建立带表头结点的双向循环链表的算法。
【正确答案】正确答案:用前插入法建立带头结点的双向循环链表。算法描述如下: DCLink*Created(int tag) { int x; DCLink* p=NULL; /*建立表头*/ DCLink*head=(DCLink*)malloc(sizeof(DLLink)); head->next=head; head->prior=head; head->data=tag; /*插入数据*/ printf("input X:\n”); scanf("%d”,&x); while(x!=tag) { p=(DCLink*)malloc(sizeof(DLLink));//申请空间 p->data=x;//赋值 /*在表头部插入结点*/ p->next=head->next; head->next->prior=p; p->prior=head; head->next=p; scanf("%d",&x); } return head; }
【答案解析】