1. 程式人生 > >C語言建立單向連結串列之逆向建鏈

C語言建立單向連結串列之逆向建鏈

//逆向建鏈就相當於頭插的過程,多想想頭插的過程就明白了
#include"stdio.h"
#include"conio.h"
#include"malloc.h"
typedef struct ElemSN
{
       int data;
       struct ElemSN * next;
}ElemSN;
ElemSN * CreatLink(int  *a , int n);  //建立單向連結串列
void printLink(ElemSN * head);        //輸出單向連結串列
void printLink(ElemSN * head)
{
       for(; head ; head=head->next)
            printf("%d  ", head->data);
}
ElemSN * CreatLink(int  *a ,int n)
{
       int i;
       ElemSN *head=NULL;
       ElemSN *p=NULL;
       for(i = n-1 ; i >= 0 ; i--)
       {
           head=(ElemSN *)malloc(sizeof(ElemSN));
           head->data=a[i];
           head->next=p;
           p=head;
      }                      
     return  head;
}
void main(void)
{
      ElemSN *head;
      int a[8]={1,2,3,4,5,6,7,8};
      head = CreatLink(a,8);
      printLink(head);
      getch();
}