데이터 구조 학습 의 길 (2) 단일 체인 표 의 간단 한 실현

잘못 쓴 곳 이 있 으 면 메 시 지 를 남기 거나 글 아래 메 일 로 연락 해 주시 면 감사 하 겠 습 니 다.
저 는 mac 시스템 에서 디 버 깅 하 는 코드 입 니 다. include 가 필요 한 가방 은 다른 시스템 과 약간 다 를 수 있 습 니 다.
# include 
# include 

typedef struct MyNode{
	int data;
	struct MyNode * pNext;
}*PNODE, NODE;

PNODE create_list(void);
void showList(PNODE);
bool isEmpty(PNODE);
int length(PNODE);
bool insert(PNODE, int, int);
bool delete_list(PNODE, int, int *);
void sort(PNODE);

int main(void)
{
	PNODE pHead = create_list();
	showList(pHead);

	if (isEmpty(pHead))
		printf("%s
", " !"); else printf("%s
", " !"); sort(pHead); showList(pHead); insert(pHead, 5, 100); showList(pHead); int val; delete_list(pHead, 5, &val); showList(pHead); printf("%d
", val); return 0; } PNODE create_list(void){ int len; int i; int val; printf("%s ", " :"); scanf("%d", &len); PNODE pHead = (PNODE)malloc(sizeof(NODE)); if(pHead==NULL){ printf("%s
", " !"); exit(-1); } PNODE pTail = pHead; pTail->pNext = NULL; for(i=0; ipNext = pNew; pNew->data = val; pNew->pNext = NULL; pTail=pNew; } return pHead; } void showList(PNODE pHead){ PNODE p = pHead->pNext; while (p!=NULL){ printf("%d ", p->data); p = p->pNext; } printf("
"); } bool isEmpty(PNODE pHead){ if (pHead->pNext==NULL) return true; return false; } int length(PNODE pHead){ int len = 0; PNODE p = pHead->pNext; while(p!=NULL){ p = p->pNext; len++; } return len; } bool insert(PNODE pHead, int index, int val){ PNODE p = pHead; int i=0; while(ipNext; i++; } if (p==NULL) return false; PNODE pNew = (PNODE)malloc(sizeof(NODE)); if (pNew==NULL){ printf("%s
", " !"); exit(-1); } pNew->data = val; pNew->pNext=p->pNext; p->pNext = pNew; return true; } /**/ bool delete_list(PNODE pHead, int index, int * val){ PNODE p = pHead; int i = 0; while(ipNext; i++; } if (p==NULL) return false; PNODE q = p->pNext; *val = q->data; p->pNext = q->pNext; free(q); return true; } void sort(PNODE pHead){ PNODE p, q; for(p = pHead->pNext; p->pNext != NULL; p=p->pNext){ for(q=p->pNext; q != NULL; q=q->pNext){ if (p->data > q->data){ p->data = p->data + q->data; q->data = p->data - q->data; p->data = p->data - q->data; } } } }

email: [email protected]
저작권 성명: 블 로그 작성 이 쉽 지 않 습 니 다. 전재 할 때 출처 를 밝 혀 주 십시오. 대단히 감사합니다!
https://blog.csdn.net/zyy_2018/article/details/79733562

좋은 웹페이지 즐겨찾기