Node *create() { DoubLink *list; Node *p, *pNew, *pHead; pHead = (Node *)malloc(sizeof(Node)); pHead->next = NULL; pHead->prior = NULL;//第一个节点 p = pHead; //指针p指向第一个节点 for(int i = 0; i < 20; i++) { pNew = (Node *)malloc(sizeof(Node)); pNew->data = i; if(p){ p->next = pNew; pNew->prior = p; pNew->next = pHead; //新添加的节点的后驱指向第一个节点 pHead->prior = pNew; //第一个节点的前驱指向新添加的节点 p=pNew; //把p指针指向新添加的节点 } } return p; }
遍历:
void display(Node *linkList) { Node *p = linkList->next->next; while(p != linkList->next) { printf("%d\n", p->data); p = p->next; } }