데이터 구조 위조 코드 의 실현 (링크 편)

3848 단어 경험 공유
제목 데이터 구조 위조 코드 의 실현 (초보 자, 지속 업데이트)
링크 편
#include
#include
#include
#include 

typedef struct Node
{
    int data;
    struct Node* pNext;
}NODE,* pNODE;

//    
pNODE create_list(viod);
void traverse_list(pNODE pHead);
bool is_empty(pNODE pHead);
int length_list(pNODE pHead);
bool insert_list(pNODE pHead,int pos,int val);
bool delete_list(pNODE pHead,int pos,int *pVal);
void sort_list(pNODE pHead);


int main(void)
{
	//     
    pNODE pHead=NULL;
    int val;

	//       
    pHead=create_list();
    printf("       :
"); traverse_list(pHead); // int length=length_list(pHead); printf(" :%d
",length); // sort_list(pHead); printf(" :
"); traverse_list(pHead); // if(insert_list( pHead,5,88)) printf(" !
"); else printf(" !
"); sort_list(pHead); printf(" :
"); traverse_list(pHead); // length=length_list(pHead); printf(" :%d
",length); // if(delete_list(pHead,5,&val)) printf(" ! %d!
",val); else printf(" !
"); traverse_list(pHead); length=length_list(pHead); printf(" :%d
",length); return 0; } // , pNODE pNODE create_list(viod) { int len; int i; int val; // pNODE pHead=(pNODE)malloc(sizeof(NODE)); if(pHead==NULL) { printf(" , !
"); exit(-1); } // , pNODE pTail=pHead; pTail->pNext=NULL; printf(" :
"); scanf("%d",&len); for(i=0;idata=val; pTail->pNext=pNew; pNew->pNext=NULL; pTail=pNew; } return pHead; } // void traverse_list(pNODE pHead) { pNODE p=pHead->pNext; while(p!=NULL) { printf("%d\t",p->data); p=p->pNext; } printf("
"); } // bool is_empty(pNODE pHead) { if(pHead->pNext==NULL) return true; else return false; } // int length_list(pNODE pHead) { pNODE p=pHead->pNext; int len=0; while (p!=NULL) { ++len; p=p->pNext; } return len; } // void sort_list(pNODE pHead) { pNODE p,q,f; int len=length_list(pHead); int i,j; for(i=0,p=pHead->pNext;ipNext) { for(j=i+1,q=p->pNext;jpNext) { if(q->datadata) { f->data=p->data; p->data=q->data; q->data=f->data; } } } } // pos , val bool insert_list(pNODE pHead,int pos,int val) { int i=0; pNODE p=pHead; // while(p!=NULL&&ipNext; ++i; } if(i>pos-1||p==NULL) return false; pNODE pNew=(pNODE)malloc(sizeof(NODE)); if(pNew==NULL) { printf(" !
"); exit(-1); } pNew->data=val; pNODE q=p->pNext; p->pNext=pNew; pNew->pNext=q; return true; } // bool delete_list(pNODE pHead,int pos,int *pVal) { int i=0; pNODE p=pHead; while(p!=NULL&&ipNext; ++i; } if(i>pos-1||p==NULL) return false; pNODE q=p->pNext; *pVal=q->data; p->pNext=p->pNext->pNext; free(q); q=NULL; return true; }

좋은 웹페이지 즐겨찾기