02チャネルのデータ構造の学習リスト

初期化リスト

構造体{lノードのtypedef
elemType ELEM、
構造体*次lノード;
} lノード; //定義ノード
のtypedef lノードLINKLIST *;
INT InitList(LINKLIST&L){//初期化リスト
L =(LINKLIST)はmalloc(はsizeof(lノード));
IF {(L!)
のprintf( "初期化に失敗しました!");
終了(0);
}
L->次に= NULL; //最初のノードを定義が空で
OKリターン;
}

N個のノード(第1の補間)を用いてリストを作成します

空CreateList(LINKLIST&L、int型のn){// Nノード関数の定義含むリストを作成
InitList(L)を; //初期化リストL
のprintf(「あなたは含むリストを作成するノードを入力してください。数: ");
scanfの(" %のD」、およびN-)
ための(INT I = N-; I> = 1; I - ){//挿入の各ノードのヘッダ情報を用いた補間方法
LINKLIST P =を(lノード*)はmalloc(はsizeof(lノード));
のprintf( "情報を入力してください:\ N-");
scanfの( "%S%S%D"、P-> elem.no、P> elem.name、P - &> elem.score);
P->次に= L->次に、
L->次に= P;
}
}

N個のノードのリストを作成する(尾の補間)

ボイドCreateList(LINKLIST&L、INT N){
InitLinkList(L)。
R = L。
ため(I 1 =、iが<= N; ++ I){
P =(LINKLIST)はmalloc(はsizeof(lノード));
输入ELEM
P->次= NULL;
R->次= P;
R = P。
}
}

出力リスト

ボイドDISPLAYLIST(LINKLISTのL){//リストの情報を表示するには、関数定義
LINKLIST Pを、
P = L;
一方(P->次に){
P = P->次に; //リスト、リスト表示情報トラバース
のprintf( " S%\ T%S \ T%D \ N- "P-> elem.no、P-> elem.name、P-> elem.score);
}
のprintf(" \ N- ");
}

読書リストの位置の値

INT GetElem(LINKLIST L、INT I 、ElemType&E){// リストは、データ要素の機能を定義する取得
(I <1)リターンエラー場合 ; //位置が妥当読み取るかどうかを検出
LINKLIST P = Lと、
INT 0 = J;
一方(P->次に&& J <I){
P = P->次に、
++ J;
}
IF(J <I)リターンエラー、検出//リード位置かどうかの合理的な
E = P-> ELEM。
OKリターン;
}

削除リスト

INT DeleteLinkList(LINKLIST&L、int型 Iを、ElemType&E){// リストを削除は、データ要素の関数を定義
(I <1)リターンエラー場合 ; // リード位置検出が妥当である
LINKLIST P = L;
INT J 0 =;
ながら(P->次に&& J <-I 1){
P = P->次に、
J ++;
}
場合、戻りERROR(P->次に!); //リード位置検出が妥当である
LINKLIST Q = P->次;
P->次= A Q->次に、
E = A Q-> elemは、
無料(Q);
OKを返します;
}

リンクリスト挿入ノード

ListInsert(LINKLIST&L、int型INT Iを、ElemType電子){// インサートはリスト機能におけるデータ要素の位置を定義
(I <1)リターンエラー場合 ; //読み取り位置かどうかをチェックし、妥当な
LINKLIST P = L ;
INT J = 0;
一方(J && P <-I 1){
P = P->次に、
++ J;
}
(!P)場合、戻りERROR; //リード位置検出が妥当である
LINKLIST S =(LINKLIST)のmalloc (のsizeof(lノード)); //データ要素の挿入のためのオープンスペース
-S-> ELEM = E;
-S->次にP - =>次に、
P->次に= S、
OKを返します;
}

ソートされたリンクリストのマージ

ボイドMergeList(LINKLIST&ラ、LINKLIST&LB、LINKLIST&LC){
PA = LA->次。
PB = LB->次。
PC = Lcは=ラ。
一方、(PA && PB){
IF(PA->データ<= PB->データ){
PC->次= PA; PC = PA; PA = PA->次;}
他{
PC->次= PB; PC = PB ; PB = PB->次;}
?PC->次= PA PA:PB。
Lbのを削除します。

リリース元の4件の記事 ウォンの賞賛0 ビュー26

おすすめ

転載: blog.csdn.net/luwanan/article/details/104879014