며칠이 좋은 펀치를 느끼지 않았다 어떻게, 손은 나에게 익숙하지 않은 .....
1 #INCLUDE <STDIO.H> 2 #INCLUDE <stdlib.h> 3 의 typedef 구조체 노드 { 4 INT의 데이터; 5 구조체 노드 * 다음; 6 } SLIST; 7 8 SLIST * creatfront (SLIST의 *의 L, int로 [η], INT의 N)를 9 { int로 난을; 10 SLIST * S; 11 대 (I = 0 ; I <N은, 내가 ++ ) 12 { 13 (S)의 = (SLIST *) 의 malloc ( sizeof 연산자 (SLIST)); 14 S-> 데이터 = A [I]; 15 S-> 다음 = L-> 다음; 16 L-> 다음 = S; 17 } 18 리턴 L; 19 } 20 21 공극 creatlater (SLIST의 *의 L, int로 [η], INT의 N) 22 { 23 SLIST *는 p = L * S; 24 int로 난을; 25 대 (I = 0 ; I <N은, 내가 ++ ) 26 { 27 (S)의 = (SLIST *) 의 malloc ( sizeof 연산자(SLIST)); 28 S-> 데이터 = A [I]; 29 S-> 다음 = P-> 다음; 30 P-> 다음 = S; (31) P = 용의 S; 32 } 33 } 34 35 공극 인서트 (SLIST의 *의 L, int로 I, INT (X)) 36 { 37 의 INT J = 0 ; 38 SLIST * p = L * S; 39 동안 (! p = NULL && J <Ⅰ- 1 ) 40 { 41 J ++ ; (42) p = P -> 다음; 43 } 44 S의 = (SLIST의 *) 의 malloc ( sizeof 연산자 (SLIST)); 45 S->의 데이터 = X; 46 S-> 다음 = P-> 다음; 47 P-> 다음 = S; 48 } 49 50 INT의 delet (SLIST의 *의 L, INT의 X, 값 int i)가 51 { 52 의 INT J = 0 ; 53 SLIST의 *의 P; 54 동안 (L! = NULL && J < I) 55 { 56 J ++ ; (57) L = L-> 다음; (58) } (59) 의 경우 (L == NULL) 60 리턴 I; 61 다른 62 { 63 p = L-> 다음; 64 L-> 다음 = P-> 다음; (65) 자유 (p); 66 } 67 창 1 ; 68 } 69 70 INT의 길이 (SLIST의 *의 L) 71 { 72 INT N; 73 동안(! L = NULL) 74 { 75 N ++ ; 76 L = L-> 다음; 77 } 78 반환 N; 79 } 80 81 공극이 (SLIST의 *의 파괴 L) 82 { 83 SLIST 사전 * = L * p = L-> 다음; 84 반면 (p! = NULL) 85 { 86 프리 (예비); (87) 미리 = P; 88 p = P -> 다음; 89 } 90 무료(전); 91 } 92 93 공극 인쇄 (SLIST의 *의 L) 94 { 95 SLIST * p = L; 96 반면 (p! = NULL) 97 { 98 는 scanf ( " %의 D " , P-> 데이터); 99 p = P -> 다음; 100 } 101 } 102 103 의 INT findlocation (SLIST의 *의 L, INT (X), INT * E) (104) { 105 INT I, J; (106) SLIST * p = L; 107 동안 (P-> 다음! = NULL) (108) { 109 p = P -> 다음; 110 내가 ++ ; (111) } (112) 의 경우 (P-> 데이터 == X) (113) { 114 * E = I; 115 E ++ ; 116 J ++ ; 117 } 118 복귀 J; 119 120 }