数据结构(第二天) 双向循环链表

来源:互联网 发布:石油化工数据 编辑:程序博客网 时间:2024/05/20 23:56
#include<stdio.h>#include<stdlib.h>typedef struct node{    int data;    struct node* next;    struct node* prev;}looplinklist;looplinklist*create_looplinklist(){    looplinklist* head;    head = (looplinklist*)malloc(sizeof(looplinklist));    head->next=head;    head->prev=head;    return head;}void insert_looplinklist(looplinklist*head,int data){    looplinklist* temp;    temp=(looplinklist*)malloc(sizeof(looplinklist));    temp->data = data;    temp->next = head->next;    head->next->prev = temp;    head->next = temp;    temp->prev = head;}void insert_looplinklist_tail(looplinklist*head,int i){    looplinklist* p = head->next;    looplinklist* temp;    temp = (looplinklist*)malloc(sizeof(looplinklist));    temp->data=i;    while(p->next != head)        p = p->next;    temp->next = p->next;    temp->prev = p;    p->next = temp;}void print_looplinklist(looplinklist*head){    looplinklist*p=head->next;    while(p != head)    {        printf("%d ",p->data);        p=p->next;    }    printf("\n");}int main(int argc, const char *argv[]){    looplinklist* head;    head = create_looplinklist();    int i;    for(i=0;i<5;i++)    {        insert_looplinklist_tail(head,i);        //insert_looplinklist(head,i);    }    print_looplinklist(head);    return 0;}