Chinaunix首页 | 论坛 | 博客
  • 博客访问: 651612
  • 博文数量: 128
  • 博客积分: 4385
  • 博客等级: 上校
  • 技术积分: 1546
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-22 14:05
文章分类

全部博文(128)

文章存档

2012年(2)

2011年(51)

2010年(75)

分类: C/C++

2011-04-07 17:57:28

  1. #include<stdio.h>
  2. #include<stdlib.h>


  3. typedef struct LNode //三个量
  4. {
  5.     int data;
  6.     struct LNode *next;
  7.     struct LNode *prior;
  8. }LNode,*LinkedList;

  9. LinkedList LinkedListInit() //链表初始化
  10. {
  11.     LinkedList L;
  12.     L=(LinkedList)malloc(sizeof(LNode));
  13.     L->next=NULL;
  14.     L->data=0; // advise to add this line
  15.     L->prior=NULL;
  16.     return L;
  17. }

  18. LinkedList LinkedListCreat( )
  19. {
  20.     LinkedList head,p,s; //p只是一个介质
  21.     int x=0;
  22.     head=LinkedListInit();
  23.     //p=L->next; // that's to say p==NULL. it's not proper to do so
  24.     p=head;
  25.     
  26.     printf("输入要创建的链表,以-1为结束\n");
  27.     fflush(stdin); //清空缓冲区
  28.     //scanf("%d",&x);
  29.     while(x!=-1)
  30.     {
  31.         scanf("%d",&x);
  32.         s=(LinkedList)malloc(sizeof(LNode));
  33.         s->data=x;
  34.         s->next=NULL;
  35.         
  36.         s->prior=p; //双链表的插入
  37.         p->next=s;
  38.         
  39.         p=s;
  40.          
  41.         //free(s);
  42.     }
  43.     p=NULL;
  44.     return(head);
  45. }


  46. int main()
  47. {
  48.     LinkedList L,temp;
  49.     
  50.     L=LinkedListCreat();
  51.     while(L->next!=NULL)
  52.     {
  53.       printf("%d\n",L->data);
  54.       temp=L->next;
  55.       free(L);// remember to go over the list to free the memory
  56.       L=temp;
  57.     }
  58.     
  59.     
  60.     return 0;
  61. }

阅读(2190) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~