초기 데이터 구 조 를 배 운 학생 에 게 보 내 는 것 (순환 더 블 링크 기본 작업, 생 성, 삽입, 삭제, 정렬)

3169 단어
1. 양 방향 순환 링크 생 성: 할 말 이 없습니다.
NODE * Doublelinklist()
{
    NODE *head = NULL;
    return head;
}

2. 노드 삽입:
NODE *myinsert(NODE *head,NodeData Data)
{
    NODE *last = head;
    if(head == NULL)
    {
        head = (NODE *)malloc(sizeof(NODE));
        head->data = Data;
	head->next = head;
	head->pione = head;
    }
    else
    {
        NODE *newnode = (NODE *)malloc(sizeof(NODE));
	newnode->data = Data;
        while(last->next != head)
	{
	    last = last->next;
	}
	last->next = newnode;
	newnode->pione = last;
	newnode->next = head;
	head->pione = newnode;
    }
    return head;
}

3. 노드 삭제:
NODE *myremove(NODE *head,int data)
{
    NODE *q = head;
    if(head == NULL)
    {
        printf("     !       !
"); return head; } else { if(head->next == head) { if(head->data == data) { free(head); head = NULL; return head; } else { printf(" !
"); return head; } } else { if(head->data == data) { NODE *pre = head->pione; NODE *ne = head->next; head = head->next; pre->next = head; free(q); q = NULL; return head; } else { while((q->data != data) && (q->next != head)) { q = q->next; } if(q->data == data) { NODE *pre = q->pione; NODE *ne = q->next; pre->next = ne; ne->pione = pre; free(q); q = NULL; return head; } else { printf(" !
"); return head; } } } } }

4. 정렬: 저 는 거품 정렬 을 사용 하고 정렬 을 직접 삽입 할 수 있 습 니 다. 정렬 을 삽입 하고 빠 른 정렬 을 선택 할 수 있 습 니 다.
정렬 을 직접 삽입 하면 쉽게 이 루어 지고 정렬 을 빨리 삽입 하 는 기준 이 약간 아프다.
NODE *mysort(NODE *head)
{
    NODE *p = head;
    NODE *max = head;
    NODE *ne = NULL;
    NODE *pre = NULL;
    int len = Doublelinklistlen(head);
    int i = len - 1;
    int j = len - 1;
    if((head == NULL) && (head->next == head))
    {
        return head;
    }
    else
    {
        while(i--)
	{
	    p = head;
	    while(p->next != head)
	    {
	        if(p->next->data > p->data)
		{
		    if(p == head)
		    {
		        head = p->next;
		    }
		    ne = p->next;
		    pre = p->pione;
		    p->next = p->next->next;
		    p->next->pione = p;
		    ne->next = p;
		    p->pione = ne;
		    ne->pione = pre;
		    pre->next = ne;
		}
		else
		{
		    p = p->next;
	        }
	    }
	}
    }
    return head;
}

실천 을 통 해 참된 지식 을 얻 고, 먼저 직접 써 보고, 쓰 지 못 하면 다른 사람의 것 을 본다.아니면 먼저 잘 보고 직접 써 보 세 요.가장 좋 은 것 은 보면 서 쓰 지 않 는 것 입 니 다 ~ ~ ~ ~ ~ ~ 아래 에 저 는 다른 데이터 구조의 지식 을 계속 업데이트 할 것 입 니 다. 저 는 개인 적 으로 데이터 구 조 를 배우 고 그림 을 많이 그리고 데이터 구조의 기본 적 인 조작 을 알 아야 한다 고 생각 합 니 다. 단일 체인 표 는 너무 간단 합 니 다. 저 는 단일 체인 표 의 전환 만 말 할 것 입 니 다.
그리고 스 택 과 대기 열, 트 리 (이 진 트 리 위주), 정렬 등등 ~ ~ ~ ~ ~ 관심 있 는 친구 들 이 관심 가 져 주 셨 으 면 좋 겠 습 니 다 ~ ~ ~ ~ ~ ~ ~ ~ ~

좋은 웹페이지 즐겨찾기