标签:delete node style define code ret str typedef tde
1 #define OKO 1 2 #define ERROR 0 3 typedef struct Lnode{ 4 ElemType data;//数据域 5 struct Lnode *next; //指针域 6 }Lnode,*Linklist; 7 Lnode *LocateElem_L(Linklist L,Elemtype e){ 8 //在链表中查找值为e的数据元素 9 Lnode *p; 10 p=L->next; 11 while(p&&p->data!=e) 12 p=p->next; 13 return p;//返回数据元素的地址 14 } 15 //按值查找 返回数据所在的位置 16 int LocateElem_L(Linklist L,Elemtype e){ 17 p=L->next; 18 j=1; 19 while(p&&p->data!=e){ 20 p=p->next; 21 j++; 22 } 23 if(p) return j; 24 else return 0; 25 } 26 //在第i个结点前插入值为e的新节点 27 Status ListInsert_L(Linklist L,int i,Elemtyoe e){ 28 p=L;j=0; 29 while(p&&j<i-1){ //寻找第i-1个元素 30 p=p->next; 31 ++j; 32 } 33 if(!p||j>i-1) return ERROR;//插入位置非法 34 s=new Lnode;s->data=e;//s=(Linklist)malloc(sizeof(Lnode)); 35 s->next=p->next; 36 p->next=s; 37 return OK; 38 } 39 //删除第I个结点 40 Status ListDelete(Linklist L,int i){ 41 p=L;j=0; 42 while(p&&j<i-1){ //寻找第i-1个元素 43 p=p->next; 44 ++j; 45 } 46 if(!(p->next)||j>i-1) return ERROR;//删除位置不合理 47 q=p->next;//临时保存被删除的结点 48 p->next=q->next;//改变删除结点前驱结点的指针域 49 delete q;//释放删除结点的空间 50 return OK; 51 }
标签:delete node style define code ret str typedef tde
原文地址:https://www.cnblogs.com/suqf/p/9736901.html