どのように数日は良いパンチを感じていなかった、手が私に慣れていない.....
1の#include <stdio.hの> 2の#include <STDLIB.H> 3のtypedef 構造体ノード{ 4 int型のデータ、 5 構造体ノード* 次回。 6 } SLIST。 7 8 SLIST(SLIST * 1、* creatfront INT []、int型N) 9 { int型私は、 10 SLIST * 秒。 11 のために(i = 0 ; iがn <I ++は) 12 { 13 、S =(SLIST *)はmalloc(はsizeof (SLIST))。 14 S->データ= [I]。 15 S->次= L-> 次。 16 L->次= S。 17 } 18 リターンL。 19 } 20 21 空隙 creatlater(SLIST * 1、INT []、int型N) 22 { 23 SLIST * P = L * 秒。 24は int型のI; 25 のために(i = 0 ; iがn <I ++は) 26 { 27 、S =(SLIST *)のmalloc(はsizeof(SLIST))。 28 S->データ= [I]。 29 S->次= P-> 次。 30 P->次= S。 31 のP =のS。 32 } 33 } 34 35 空隙インサート(SLIST * 1、int型 I、INT X) 36 { 37 のint J = 0 。 38 SLIST * P = L、* S。 39 ながら(!p = NULL && J <I- 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 * 1、int型のx、int型私は) 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 フリー(PRE)。 87 予備= P。 88 P = P - > 次。 89 } 90 無料(PRE)。 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 * 1、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 }