2021-05-27

C语言头插法与尾插法建立单链表

头插法

void  CreateFromHead()
{   LinkList   L; 
	Node   *s; 
	int flag=1;
 /* 设置一个标志,初值为1,当输入“$”时,flag为0,建表结束*/
 L=(Linklist)malloc(sizeof(Node));/*为头结点分配存储空间*/
 L->next=NULL;
 while(flag)
 {   c=getchar();   
     if(c!=’$’) /*为读入的字符分配存储空间*/
     {  s=(Node*)malloc(sizeof(Node)); s->data=c;
       s->next=L->next; L->next=s;      }
     else	flag=0;
  }

尾插法

void  CreateFromTail() /*将新增的字符追加到链表的末尾*/
{  LinkList L;  
   Node *r, *s;
   int   flag =1; 
   L=(Node * )malloc(sizeof(Node));/*为头结点分配存储空间*/
   L->next=NULL; r=L;   /*r指针始终动态指向链表的当前表尾*/
   while(flag)/*标志,初值为1。输入“$”时flag为0,建表结束*/
   { 	c=getchar();
	    if(c!=’$’)
   {  s=(Node*)malloc(sizeof(Node)); s->data=c;
     r->next=s;   r=s  }
   else {  flag=0;  r->next=NULL; }
  }
}
上一篇:区分抽象类与接口


下一篇:读书笔记--堆、栈和数据段