1. 程式人生 > 其它 >16.帶頭結點的單鏈表L,刪除介於給定元素之間的元素

16.帶頭結點的單鏈表L,刪除介於給定元素之間的元素

#include<stdio.h>
#include<stdlib.h>
typedef int ElemType;
typedef struct LNode{
    ElemType data;
    struct LNode *next;    
}LNode,*LinkList;

//尾插法 
 LinkList List_TailInsert(LinkList &L)
 {
     int x;
     L=(LinkList)malloc(sizeof(LNode));
     LNode *s,*r=L;
     printf("請輸入單鏈表各個節點,以9999結束!\n
"); scanf("%d",&x); while(x!=9999) { s=(LNode*)malloc(sizeof(LNode)); s->data=x; r->next=s; r=s; scanf("%d",&x); } r->next=NULL; return L; } //帶頭結點的單鏈表L,刪除介於給定元素之間的元素 void RangeDelete(LinkList &L,int
min,int max){ LNode *pre=L,*p=L->next,*q; while(p!=NULL) { if(p->data>min&&p->data<max) { q=p; p=p->next; pre->next=p; free(q); } else { pre=p; p
=p->next; } } } int main(){ LinkList L; LinkList R;//接收處理結果 R=List_TailInsert(L); RangeDelete(R,3,6); LNode *p=R; while(p->next!=NULL){ p=p->next; printf("->%d",p->data); } }