C 언어 - 데이터 구조 - 단일 체인 표 의 기본 실현
typedef int ElementType;
typedef struct LNode{
ElementType data;
struct LNode *ptr;
}LNODE,*LINKLIST;
/**
*@Function: ( )
*@params :
*@return :
*@note :
*/
LINKLIST LinkList_Creat(void)
{
LNODE *headPtr; //
LNODE *headNode; //
headPtr=headNode=(LINKLIST)malloc(sizeof(LNODE));
if(headPtr == NULL || headNode == NULL){
printf(" !!!
");
return;
}
headNode->ptr=NULL;
headNode->data=0;
//printf("headPtr = %p
",headPtr);
//printf("headNode = %p
",headNode);
//printf("headNode->ptr = %p
",headNode->ptr);
//printf("headNode->data = %d
",headNode->data);
return headNode;
}
/**
*@Function: --
*@params :
*@return :
*@note : pos , pos ;
* ,
*/
LINKLIST LinkList_Insert(LINKLIST linklist,int pos,ElementType data)
{
LNODE *temPtr;
LNODE *s;
int i=0;
temPtr = linklist;
if(pos > (temPtr->data) + 1){ //
printf(" !!!
");
return;
}
for(i=0;iptr;
}
//printf("temPtr=%p
",temPtr);
if(pos == (linklist->data + 1)){ // ,
s=(LINKLIST)malloc(sizeof(LNODE));
temPtr->ptr=s;
s->data = data;
linklist->data++; // +1,
s->ptr=NULL; // ,
//printf("if-malloc_addr=%p
",s);
}
else{ //
s=(LINKLIST)malloc(sizeof(LNODE));
s->ptr=temPtr->ptr;
temPtr->ptr=s;
s->data=data;
linklist->data++; // +1,
//printf("el-malloc_addr=%p
",s);
}
return linklist;
}
/**
*@Function: --
*@params :
*@return :
*@note : pos , pos ;
* ,
*/
bool LinkList_Delete(LINKLIST linklist,int pos)
{
LNODE *tmp;
LNODE *tmp1=NULL;
int i;
tmp=linklist;
if(pos > linklist->data){
printf(" !!!
");
return;
}
for(i=0;iptr;
}
if(pos == linklist->data){
free(tmp->ptr);
tmp->ptr=NULL;
linklist->data--;
}
else{
tmp1=tmp->ptr;
tmp->ptr=tmp1->ptr;
linklist->data--;
free(tmp1);
}
return true;
}
/**
*@Function: --
*@params :
*@return :
*@note :
*
*/
ElementType LinkList_Query(LINKLIST linklist,int pos)
{
LNODE *tmp;
int i;
tmp=linklist->ptr;
if(pos > linklist->data){
printf(" !!!
");
return;
}
for(i=1;iptr;
}
printf("--query-data=%d
",tmp->data);
printf("--data-addre=%p
",tmp);
return tmp->data;
}
/**
*@Function:
*@params :
*@return :
*@note :
*/
void printAllDatas(LINKLIST linklist)
{
int i=0;
LNODE *tmep;
tmep=linklist->ptr;
printf("/*--------------------------*/
");
for(i=0;idata;i++){
printf("data[%d]=%d
",i,tmep->data);
printf("addr[%d]=%p
",i,tmep);
tmep=tmep->ptr;
printf("/*--------------------------*/
");
}
printf("length=%d
",linklist->data);
}
/**
*@Function:
*@params :
*@return :
*@note :
*/
void LinkList_Print2Test(void)
{
int i;
LINKLIST linklist;
linklist=LinkList_Creat();
LinkList_Insert(linklist,1,23);
LinkList_Insert(linklist,2,25);
LinkList_Insert(linklist,3,27);
LinkList_Insert(linklist,2,229);
LinkList_Insert(linklist,1,213);
LinkList_Insert(linklist,2,215);
LinkList_Insert(linklist,3,217);
LinkList_Insert(linklist,2,219);
for(i=1;idata+1;i++){
LinkList_Query(linklist,i);
}
LinkList_Delete(linklist,8);
LinkList_Delete(linklist,9);
LinkList_Delete(linklist,1);
printAllDatas(linklist);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
데이터 구조 싱글 체인 시트 삽입 삭제 작업 (c 언어 구현)#include "stdlib.h" #include "stdio.h" typedef struct LNode{ int data; struct LNode *next; }LNode,*LinkList; void Create...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.