双向链表的逆位序建表与输出

来源:互联网 发布:exec怎么用linux 编辑:程序博客网 时间:2024/06/03 19:55
#include<stdio.h>#include<stdlib.h>#include<malloc.h>#define OK 1#define ERROR 0#define OVERFLOW -2typedef int status;typedef int ElemType;typedef struct DLNode{ElemType data;struct DLNode *prior;struct DLNode *next;}LNode,*LinkList;void creatdlist(LinkList &L,int n){LinkList p;int i;L=(LinkList)malloc(sizeof(LNode));L->next=L->prior=NULL;printf("输入链表中有几个元素:\n");for(i=n;i>0;i--){p=(LinkList )malloc(sizeof(LNode));scanf("%d",&p->data);p->next=L->next;L->next=p;p->prior=L;}}void printfdlist(LinkList &L){LinkList p;p=L->next;for(p;p!=NULL;p=p->next){printf("%d",p->data);}}void insertdlist(LinkList &L,int i,ElemType e){LinkList p;LinkList s;p=L->next;int j=0;for(j;j<i-1;j++){p=p->next;}s=(LinkList)malloc(sizeof(LNode));s->data=e;s->prior=p->prior;p->prior->next=s;s->next=p;p->prior=s;}int main(){LinkList L;int i;int e;int j;printf("请输入链表中元素的个数:\n");scanf("%d",&i);creatdlist(L,i);printf("链表中的内容是:\n");printfdlist(L);printf("输入插入的元素:\n");scanf("%d",&e);printf("插入位置为:\n");scanf("%d",&j);insertdlist(L,j,e);printf("插入后的链表的内容是:\n");printfdlist(L);return 0;}
原创粉丝点击