C 언어 데이터 구조의 순서 표 와 단일 체인 표

1.순서 표 의 생 성,삭제,삽입

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
struct sqlist {
	int date[10];
	int length;
};
void InitList(sqlist& L) {
	for (int i = 0;i < 10;i++) {
		L.date[i] = 0;
	}
	L.length = 0;
}
void charu(sqlist& L) {
	for (int j = 0;j < 5;j++) {
		scanf("%d", &L.date[j]);
		L.length++;
	}
}
void ListInsert(sqlist& L, int i, int e) {
	for (int k = L.length;k >= i;k--) {
		L.date[k] = L.date[k - 1];
	}
	L.date[i - 1] = e;
	L.length++;
}
void print(sqlist& L) {
	for (int i = 0;i < L.length;i++) {
		printf("%d ", L.date[i]);
	}
	printf("
"); } void ListDelete(sqlist& L, int i, int e) { for (int j = i;j < L.length;j++) { L.date[j-1] = L.date[j]; } L.length--; } int main() { sqlist L;// L InitList(L);// shuru(L);// ListInsert(L, 3, 3);// print(L);// ListDelete(L, 3, 3);// print(L); return 0; }
이상 의 조작 은 순서 표 의 생 성,삽입,삭제 와 인쇄 를 각각 실현 하 였 다.
2.단일 체인 시트 의 생 성,삭제,증가 와 출력

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
struct ListNode {
    int num;
    struct ListNode* next;
};
struct ListNode* create(struct ListNode* head) {
    struct ListNode * p1, * p2;
    p1 = p2 = (struct ListNode*)malloc(sizeof(struct ListNode));
    scanf("%d", &p1->num);
    while (p1->num!=0){
        if (head == NULL) {
            head = p1;
        }
        else {
            p2->next = p1;
        }
        p2 = p1;
        p1= (struct ListNode*)malloc(sizeof(struct ListNode));
        scanf("%d", &p1->num);
    }
    p2->next = NULL;
    free(p1);
    return head;
}
void print(struct ListNode* head) {
    while (head != NULL) {
        printf("%d ", head->num);
        head = head->next;
    }
}
int main() {
    struct ListNode* head=NULL;
    head=create(head);//    
    print(head);//    
	return 0;
}
이상 동작 은 링크 를 만 들 고 인쇄 하 는 것 입 니 다.효 과 는 다음 과 같 습 니 다.

삽입 작업 추가

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
struct ListNode {
    int num;
    struct ListNode* next;
};
struct ListNode* create(struct ListNode* head) {
    struct ListNode * p1, * p2;
    p1 = p2 = (struct ListNode*)malloc(sizeof(struct ListNode));
    scanf("%d", &p1->num);
    while (p1->num!=0){
        if (head == NULL) {
            head = p1;
        }
        else {
            p2->next = p1;
        }
        p2 = p1;
        p1= (struct ListNode*)malloc(sizeof(struct ListNode));
        scanf("%d", &p1->num);
    }
    p2->next = NULL;
    free(p1);
    return head;
}
void print(struct ListNode* head) {
    while (head != NULL) {
        printf("%d ", head->num);
        head = head->next;
    }
    printf("
"); } struct ListNode* insert(struct ListNode* head,int i) { struct ListNode* p1,*p2,*p; p1 =p2= head; for (int j = 1;j < i;j++) { p2 = p1; p1 = p1->next; } p= (struct ListNode*)malloc(sizeof(struct ListNode)); printf(" :"); scanf("%d", &p->num); p2->next = p; p->next = p1; return head; } int main() { struct ListNode* head=NULL; int a, b; head=create(head); print(head); printf(" :"); scanf("%d", &a); head = insert(head,a);// print(head); return 0; }
효 과 는 다음 과 같 습 니 다:

삭제 작업 추가

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
struct ListNode {
    int num;
    struct ListNode* next;
};
struct ListNode* create(struct ListNode* head) {
    struct ListNode * p1, * p2;
    p1 = p2 = (struct ListNode*)malloc(sizeof(struct ListNode));
    scanf("%d", &p1->num);
    while (p1->num!=0){
        if (head == NULL) {
            head = p1;
        }
        else {
            p2->next = p1;
        }
        p2 = p1;
        p1= (struct ListNode*)malloc(sizeof(struct ListNode));
        scanf("%d", &p1->num);
    }
    p2->next = NULL;
    free(p1);
    return head;
}
void print(struct ListNode* head) {
    while (head != NULL) {
        printf("%d ", head->num);
        head = head->next;
    }
    printf("
"); } struct ListNode* insert(struct ListNode* head,int i) { struct ListNode* p1,*p2,*p; p1 =p2= head; for (int j = 1;j < i;j++) { p2 = p1; p1 = p1->next; } p= (struct ListNode*)malloc(sizeof(struct ListNode)); printf(" :"); scanf("%d", &p->num); p2->next = p; p->next = p1; return head; } struct ListNode* Delete(struct ListNode* head, int i) { struct ListNode* p1, * p2; p1 = p2 = head; while (p1!=NULL&&p1->num != i) { p2 = p1; p1 = p1->next; } if (p1 == head) { head = head->next; } else { p2->next = p1->next; } return head; } int main() { struct ListNode* head=NULL; int a, b; head=create(head); print(head); printf(" :"); scanf("%d", &a); head = insert(head,a); print(head); printf(" :"); scanf("%d", &b); head = Delete(head, b);// print(head); return 0; }
효 과 는 다음 과 같 습 니 다:

그래서 우 리 는 단일 체인 시트 의 생 성,삭제,증가 와 출력 을 실현 했다.
총결산
여기 서 C 언어 데이터 구조 에 관 한 순서 표 와 단일 체인 표 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 C 언어 순서 표 와 단일 체인 표 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기