데이터 구조 링크 및 통합

6260 단어 데이터 구조
순서 표 에 비해 링크 는 데이터 간 의 연결 을 강화 하고 하나씩 이 어 졌 다. July 의 블 로그 가 비교적 깊 은 것 을 발견 한 것 은 기 초 를 다 져 서 더욱 깊 은 것 을 알 아 보 는 것 이다.
      아니면 LinkList. h, LinkList. c, main. c 로 나 눌 까요?
     전에 급히 물건 을 재촉 할 때 copy 를 크게 고 쳐 서 제출 했 습 니 다.자신 이 다시 쓴 후에 많은 문제 가 이 부분 에 있다 는 것 을 발견 하 였 다.
       LinkList.h
#include<stdio.h>

#include<malloc.h>

typedef int DataType;

typedef struct SimpleLinkList *Node;

struct SimpleLinkList{

	DataType info;

	Node link;

} ;

typedef struct SimpleLinkList *LinkList;



LinkList CreateNUllList();

int isNull(LinkList linklist);

int insertPost(LinkList linklist,Node node,DataType element);

int insertBack(LinkList linklist,Node node,DataType element);

int printList(LinkList linklist);

Node searchElement(LinkList linklist,DataType element);

DataType showValue(LinkList linklist,Node node);

int deleteElement(LinkList linklist,DataType element);

LinkList combine(LinkList one,LinkList another);


LinkList.c
#include "LinkList.h"

LinkList CreateNUllList(){

	LinkList linklist = (LinkList)malloc(sizeof(struct SimpleLinkList));

	if(linklist != NULL)

		linklist -> link = NULL;

	else 

		printf("create fail!");

	return linklist;

} 





int isNull(LinkList linklist){

	return (linklist != NULL); // not null return 1 

}



int insertPost(LinkList linklist,Node node,DataType element){

	Node temp = (Node)malloc(sizeof(struct SimpleLinkList));

	//                         element 

	if(temp == NULL){

		printf("insert fail");

		return 0;

	}else{

		for(linklist;linklist!= NULL; linklist = linklist -> link) {

			if(linklist	 -> link == node){

				temp ->info = element;

				linklist ->link = temp;

				temp ->link = node;

			}

		}

	}

	return 1;

	//                          





} 

// insert forward

//               

//                     node             

//    node link           “  ” 

int insertBack(LinkList linklist,Node node,DataType element){

	Node temp = (Node)malloc(sizeof(struct SimpleLinkList));

	if(temp == NULL){	

		printf("insert element fail!");

		return 0;

	}

	temp -> info = element; 

	temp -> link = node -> link;

	node -> link = temp;

	

	

	return 1;

} //insert back



int printList(LinkList linklist){

	if(linklist == NULL){

		printf("it is null");

		return 0;

	}

	

	while(linklist -> link != NULL){

		printf("%2d",linklist->link->info);

		linklist  = linklist -> link ;

	}

	printf("
"); return 1; } Node searchElement(LinkList linklist,DataType element){ Node node; if(linklist == NULL){ printf("the element was not found"); return NULL; } node = linklist -> link; while(node != NULL && node -> info != element){ node = node -> link; } if(node == NULL){ return NULL; } return node; } DataType showValue(LinkList linklist,Node node){ Node temp; if(linklist == NULL){ printf("the element was not found"); return NULL; } temp = linklist -> link; while(temp != NULL && temp -> link != node){ temp = temp -> link; } return node; } int deleteElement(LinkList linklist,DataType element){ Node node; Node temp; if(linklist == NULL){ printf("the element you deleted was not found"); return 0; } node = linklist ; while(node ->link!= NULL && node ->link-> info != element){ // link info element 。 node = node -> link; // printf("test
");link ->info link ! } // printf("test2"); if(node->link== NULL ){ printf("the element you deleted was not found
"); return 0; } else { temp = node->link; node -> link = temp -> link; free(temp); printf("the element is deleted
"); return 1; } } LinkList combine(LinkList one,LinkList another){ // // malloc // : one ->link!= NULL while(one!= NULL) // one null link malloc 。 Node temp ; LinkList linken; linken = one; while(one ->link!= NULL) one = one ->link; for(another;another->link!= NULL; another = another ->link){ temp = (Node)malloc(sizeof(struct SimpleLinkList)); temp ->info = another ->link ->info; temp ->link = another ->link ->link; one ->link = temp; one = one ->link; } return linken; // linken }

main.c
#include "LinkList.h"

int main(){

	int i,element;

	LinkList linklist1 = CreateNUllList();

	LinkList linklist2 = CreateNUllList();

	LinkList linklist3 = CreateNUllList();

	Node note = linklist1;

	Node note2 = linklist1;

	//if(note != NULL) printf("yes");

	for(i = 0;i<10;i++){

	    

        while(note != NULL)

				note = note -> link;		

        insertPost(linklist1, note,i);

      

 	

	

	}//             

 

 	for(i = 0;i<10;i++){		

		insertBack(linklist2, linklist2,i);

	}

	//printf("%d",linklist->link->info);	

	printList(linklist1);

	printList(linklist2);

	

/*	printf("input the value of the element you search
"); scanf("%d",&element); if(searchElement(linklist1,element) == NULL) printf("not found"); for(i=0;note2 != searchElement(linklist1,element);note2 = note2 ->link,i++ ) ;// if(searchElement(linklist1,element) == NULL) printf("not found
"); else printf("%d is the %dth element of the linklist
",element,i); printf("input the value of the element you delete
"); // scanf("%d",&element); //deleteElement(linklist1,element); // printList(linklist1); */ linklist3 = combine(linklist1,linklist2); printList(linklist3); return 0; }

       한 달 이 넘 었 으 니 조금 만 배 워 라.자바 의 링크 리스트 는 원래 이렇게 실현 되 었 는데, 단순히 사용 하면 매우 간단 하 다.
   

좋은 웹페이지 즐겨찾기