[데이터 구조] 단일 체인 테이블 의 기본 연산
//
LinkList InitiateLinkList( )
{
LinkList head; //
head = malloc(sizeof(node)); // ,
head ->next = NULL;
return head;
} 2. 시계 장 구하 기
// head
int LentghLinklist ( LinkList head )
{
Node * p = head; //p , p
int cnt = 0; //
while(p->next != NULL) //
{
p = p->next; //
cnt ++;
}
return cnt;
} 3. 테이블 요소 읽 기
// head i , , , NULL
Node * GetLinklist(LinkList head,int i)
{
Node *p; //p
p = head ->next; // p
int c = 1;
while ( (cnext;
c++;
}
if ( i == c ) return p; // i
else return NULL; //i<1 i>n ,i ,
} 4. 포 지 셔 닝
// head x , , 0
int LocateLinklist( LinkList head , DataType x)
{
Node * p = head; //p
p = p->next; // p
int i=0; //i , 0
while (p!= NULL && p->data !=x) //
{
i++;
p = p->next;
}
if (p!= NULL ) return i+1;
else return 0;
} 5.插入
// head i x void InsertLinklist ( LinkList head , DataType x,int i ) { Node *p , *q; if ( i == 1) q = head; else q = GetLinklist (head ,i-1); // i-1 if (q == NULL ) // i-1 exit (" "); else { p = malloc ( sizeof(Node)); p->data = x; // p->next = q->next; // *q q->next = p; // *q } }
6. 삭제// head i void DeleteLinklist (LinkList head,int i) { Node *p; if(i==q) q=head; else q=GetLinklist(head,i-1); // if(q!=NULL && q->next != NULL) // { p=q->next; //p q->next=p->next; // free(p); // p } else exit (" "); // }