双链表的创建与输出

来源:互联网 发布:黑帽seo好学吗 编辑:程序博客网 时间:2024/06/05 09:54

双链表的创建与输出

//双链表

#include<stdio.h>

#include<stdlib.h>

 

typedef int Element;

typedef struct DNode{

       Element data;

       struct DNode *prior;

       struct DNode *next;

} DLinkList;

//头插法

void CreateListF(DLinkList *L,Element a[],int n){

       DLinkList *s;

       int i;

       L->prior=L->next=NULL;

       for(i=0;i<n;i++){

              s=(DLinkList*)malloc(sizeof(DLinkList));

              s->data=a[i];

              s->next=L->next;

              if(L->next!=NULL)

                L->next->prior=s;

                L->next=s;

                s->prior=L;

       }

}

//尾插法

void  CreateListR(DLinkList    *L,Element   a[],intn){

       DLinkList *s,*r;

       int i;

       r=L;

       for(i=0;i<n;i++){

              s=(DLinkList*)malloc(sizeof(DLinkList));

              s->data=a[i];

              r->next=s;

              s->prior=r;

              r=s;

       }

       r->next=NULL;

}

//输出双链表

void printDList(DLinkList *L){

       DLinkList *p=L->next;

       while(p!=NULL){

              printf("%d",p->data);

              p=p->next;

       }

       printf("\n"); 

}

int main(){

    int i;     

    DLinkList*L=(DLinkList*)malloc(sizeof(DLinkList)); 

       int array[10];

       for(i=0;i<10;i++){

              array[i]=i;

       }

       CreateListF(L,array,10);

  //  CreateListR(L,array,10);

       printDList(L);      

}

微笑 本内容由安康学院"雨季"原创!

原创粉丝点击