하나의 목록을 달성

때문에 프로그램은 C ++ 프로그램되도록 전달 함수 파라미터 레퍼런스의 사용에

#INCLUDE <STDIO.H>
#INCLUDE <stdlib.h>
#DEFINE ElemType INT
의 typedef 구조체 {LNode
ElemType 데이터;
구조체 LNode * 다음;
INT 길이;
} LNode * LinkList;
INT CreatList (LinkList & L) {
L = (LinkList)의 malloc (sizeof 연산자 (LNode));
경우 (L == NULL) {의 printf ( "创建失败"); 0 반환}
L-> 다음 = NULL;
1을 반환;
} //创建一个链表的头结点
공극 ListTailInsert (LinkList & L, ElemType 전자) {
LinkList의 R, S;
R = L;
S = (LinkList)의 malloc (sizeof 연산자 (LNode));
S-> 데이터 = E;
S-> 다음 = NULL;
동안 (R-> 다음 = NULL!) {
R = R -> 다음;
}
R-> 다음 = S;
} //尾插法填充节点
무효 ListPrint (LinkList &

0 = I 값 int
P = L-> 다음,
에서 printf ( "리스트는")
그동안 (P = NULL!) {
의 printf ( "%의 D", P-> 데이터);
P = P-> 다음,
I를 ++ ;
}
의 printf ( "\ N-");
L-> I = 길이;
의 printf ( "리스트의 길이 : % D \ N-"L-> 길이)
} // 인쇄 목록
LNode *은, getElem (LinkList & L, INT ⅰ) {
INT J = 1].
LinkList L-P는 => 다음]
. IF (나는 <1 || 난> L-> 길이) {
의 printf () "난 잘못된 위치를 찾을";
}
! 그동안 (P = NULL ) {
IF (J == ⅰ) P {반환}
P = P-> 다음,
J ++;
}
는 i 번째 노드 발견 //}
LNode LocateElem * (L & LinkList, elemType E) {
LinkList = L-P를> 다음에,
플래그 = 0에서 INT]
(! P = NULL) 그동안 {
IF (P->데이터 == E) {플래그 = 1; 리턴 P}
p = P -> 다음;
}
IF {의 printf ( "노드가 발견되지 않는") (플래그 == 0에서);}
} 룩업 // 테이블 노드의 값에 따라 상기 노드가 리턴
공극 ListInsert을 (LinkList & L, I는 INT, elemType E) {
LinkList S, P;
IF (ⅰ <0 || I> L-> 길이) {( "I가 유효 위치에 삽입"참조)의 printf}
S = (LinkList)에의 malloc (sizeof의 (LNode));
S-> 데이터 = E;
IF (. I == 1) {
S-> 다음 = L-> 다음,
L-> 다음 = S;
} 제 1 노드 삽입 특별한 경우 //
다른을 p = {은, getElem (L, I-1) ;
S-> 다음 = P-> 다음에,
P-> 다음 = S]는}
} // E는 노드의 값이
{(LinkList L &가, I를 INT) 보이드 ListDelete
; LinkList P
IF는 (I 0 || I를 < > L-> 길이) {의 printf ( " ) 나 삭제 잘못된 위치"}
. (I == 1) {IF
; L-> 다음 = L->하는 next-> 다음에
제 노드} // 특별한 경우의 제거
다른을 getElem {P = (L, I- 1.)
P-> 다음 = P->하는 next- 다음>}
} // i 번째 노드를 삭제
INT의 main () {
LinkList의 L;
LinkList Q;
LinkList의 피;
CreatList (L);
ListTailInsert (L, 1);
ListTailInsert (1,2);
ListTailInsert (L, 3);
ListTailInsert (1,4);
ListTailInsert (1,5);
ListPrint (L);
Q = LocateElem (1,2);
의 printf ( "% D \ 없음"Q-> 데이터);
p =은, getElem (L, 3);
의 printf ( "% D \ 없음"P-> 데이터);
ListInsert (L, 1.6);
ListInsert (L, 3,7);
ListPrint (L);
ListDelete (L, 1);
ListDelete (1,5);
ListPrint (L);
0을 반환;
}

에 대한 다음과 같은 운영 결과

추천

출처www.cnblogs.com/Yshun/p/11140924.html