데이터 구조 상의: 실험 1 - 선형 표 기본 조작 과 간단 한 프로그램

2813 단어

실험  선형 표 기본 조작 과 간단 한 프로그램
 
1. 실험 목적
1. 실험 목적 과 기본 요구
  • 데이터 구조 중의 기본 개념 을 파악 한다.데이터, 데이터 항목, 데이터 요소, 데이터 유형 과 데이터 구조, 그리고 그들의 관계.
  • 데이터 의 논리 구조 와 데이터 의 저장 구조 간 의 차이 와 관 계 를 파악 한다.데이터 의 연산 과 데이터 의 논리 구조의 관계.
  • 순서 표 와 링크 의 기본 동작 을 파악 한다. 삽입, 삭제, 찾기 와 표 의 합병 등 연산 이다.
  • codeblock 컴퓨터 디 버 깅 프로그램의 기본 방법 과 C 언어 프로 그래 밍 을 파악 합 니 다.

  •  
    실험 내용
  • 본 실험 과 관련 된 교재 내용 과 주어진 두 개의 프로그램 코드 를 열심히 읽 고 파악 한다.
  • 순서 표를 만 듭 니 다. 기본 적 인 작업 은 초기 화, 순서대로 저 장 된 링크 를 만 들 고 출력 순서 표를 만 들 며 비어 있 는 지 여 부 를 판단 합 니 다. 표 에 있 는 i 번 째 요 소 를 취하 고 포 지 셔 닝 함수 (첫 번 째 x 와 같은 요소 위치 로 돌아 갑 니 다) 를 삽입 하고 삭제 합 니 다.
  • 단일 체인 표를 만 듭 니 다. 기본 적 인 작업 은 초기 화, 체인 에 저 장 된 링크 를 만 들 고 출력 순서 표를 만 들 며 비어 있 는 지 판단 합 니 다. 표 에 있 는 i 번 째 요소, 포 지 셔 닝 함수 (첫 번 째 x 와 같은 요소 위치 로 돌아 갑 니 다) 를 취하 고 삽입, 삭제 합 니 다.
  • 순서 표 와 링크 로 각각 한 조 의 데이터 (4, 6, 9, 0, 2, - 25, 14, 3, - 29) 를 입력 하고 테스트 프로그램의 다음 과 같은 기능 을 설계 합 니 다. 입력 한 데이터 에 따라 해당 하 는 저장 부 를 찾 아 삭제 하고 표 의 모든 데 이 터 를 표시 합 니 다. 예 를 들 어 입력 데이터 3 이 존재 하면 삭제 하고 출력 이 삭 제 된 이 데 이 터 를 표시 합 니 다. 그렇지 않 으 면...직접 출력.

  •  
    #include 
    using namespace std;
    struct node {
        int data;
        node *next;
    };
    
    node *LinkedListInit() {
        node *L;
        L = new node;
        if(L == NULL) {
            printf("        
    "); } L->next = NULL; return L; } node *LinkedListCreatH() { node *L; L = new node; L->next = NULL; int x; while(scanf("%d",&x) != EOF) { node *p; p=new node; p->data = x; p->next = L->next; L->next = p; } return L; } node *LinkedListInsert(node *L,int i,int x) { node *pre; pre = L; int tempi = 0; for (tempi = 1; tempi < i; tempi++) { pre = pre->next; } node *p; p = new node; p->data = x; p->next = pre->next; pre->next = p; return L; } node *LinkedListDelete(node *L,int x) { node *p,*pre; p = L->next; while(p->data != x) { pre = p; p = p->next; } if(x==L->next->data){ L->next=L->next->next; } else{ pre->next = p->next; } return L; } int main() { node *list,*start; printf(" :"); list = LinkedListCreatH(); for(start = list->next; start != NULL; start = start->next) { printf("%d ",start->data); } printf("
    "); int i; int x; printf("
    "); printf(" :"); scanf("%d",&x); LinkedListDelete(list,x); for(start = list->next; start != NULL; start = start->next) { printf("%d ",start->data); } printf("
    "); return 0; }

    좋은 웹페이지 즐겨찾기