您的位置:首页 > 其它

双循环链表解决耶稣门徒问题

2017-11-01 14:47 411 查看
#include<stdio.h>
#include<malloc.h>
#define MaxSize 15
typedef struct Dnode
{
int data;
struct Dnode *prior, *next;
}Dnode, *DLinkList;
DLinkList CreatList()
{
int data[MaxSize] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
DLinkList L;
L = (DLinkList)malloc(sizeof(Dnode));
L->next = NULL;
L->prior = NULL;
L->data = data[0];
DLinkList head = L;
Dnode *p;
int i = 1;
while(i<MaxSize)
{
p = (Dnode*)malloc(sizeof(Dnode));
p->data = data[i];
L->next = p;
p->prior = L;
p->next = NULL;
L = p;
i++;
//printf("%d\n", p->data);
}
p->next = head;
head->prior = p;
return head;
}

void Del(DLinkList L)
{
Dnode *p;
p = L;
int k = 15;
int t = 1;
while(k != 1)
{

if (t%3 == 0)
{
p->next->prior = p->prior;
p->prior->next = p->next;
k--;
}
t++;
p = p->next;
}
printf("%d", p->data);
}
int main()
{
int data[MaxSize];
int i;
for (i = 0; i < 15; i++)
{
data[i] = i+1;
}
DLinkList L;
L = CreatList();
//Dnode *L = (Dnode)malloc(sizeof(Dnode));
Del(L);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  链表