标签:printf span print return 数据结构 修改表 next div 跳过
最简单的链表
1 typedef struct LNode *List; 2 struct LNode { 3 ElementType Data; 4 List Next; 5 }; 6 struct LNode L; 7 List PtrL; 8 9 //建立 10 11 //求表长 12 int Length ( List PtrL ) { 13 List p = PtrL; //p 指向表的第一个节点 14 int j = 0; 15 while(p) { 16 p = p->Next; 17 j++; 18 } 19 return j; 20 } 21 22 //① 按序号查找 23 List FindKth( int K, List PtrL ) { 24 List p = PtrL; 25 int i = 1; 26 while(p!=NULL && i<K) { 27 p = p->Next; 28 i++; 29 } 30 if(i == K) return p; 31 else return NULL; 32 } 33 34 //② 按值查找 35 List Find( ElementType X, List PtrL ) { 36 List p = PtrL; 37 while(p!=NULL && p->Data != X) 38 p = p->Next; 39 return p; 40 } 41 42 //插入 43 List Insert( ElementType X, int i, List PtrL ) { 44 List p,s; 45 if( i==1 ) { // 新节点插入在表头 46 s = (List)malloc(sizeof(struct LNode)); 47 s->Data = X; 48 s->Next = PtrL; 49 return s; 50 } 51 p = FindKth(i-1, PtrL); // 查找第i-1个节点 52 if(p == NULL) { 53 printf("参数i错误"); 54 return NULL; 55 } 56 else { 57 s = (List)malloc(sizeof(struct LNode)); 58 s->Data = X; 59 s->Next = p->Next; 60 p->Next = s; 61 return PtrL; 62 } 63 64 } 65 66 //删除 67 List Delete( int i, List PtrL ) { 68 List p,s; 69 if( i==1 ) { //删除的是表头节点 70 s = PtrL; 71 if(PtrL!=NULL) PtrL = PtrL->Next; //修改表头指针 72 else return NULL; 73 free(s); 74 return PtrL; 75 } 76 p = FindKth( i-1, PtrL); 77 if( p==NULL ) { 78 printf("第%d个结点不存在",i-1); return NULL; 79 } 80 else if ( p->Next == NULL ) { 81 printf("第%d个结点不存在",i); return NULL; 82 } 83 else { 84 s = p->Next; 85 p->Next = s->Next; //跳过第i个结点 86 free(s); //删除第i个结点 87 return PtrL; 88 } 89 }
标签:printf span print return 数据结构 修改表 next div 跳过
原文地址:https://www.cnblogs.com/Pio-GD/p/14379388.html