순환 링크 의 C 언어 구현

14646 단어 필기 하 다.
@ TOC 데이터 구조 편: 순환 링크 의 C 언어 구현
지식 기반
지식 기 초 는 C 언어 구조 체, 데이터 구조의 링크 를 포함한다.
실 현 된 C 언어 코드
순환 링크 초기 화, 증가, 삭제 작업 을 실현 합 니 다.
#include
#include
static int size=0;  
typedef struct Node{      //          
	int data;
	struct Node *next;
}node,*linklist; 
void head_creat(linklist l){  //          
	printf("          (    )"); 
	int num;                   //           
	scanf("%d",&num);
	while(num--){
		linklist p;
		p=(linklist)malloc(sizeof(node));
		scanf("%d",&p->data);
		p->next=l->next;
		l->next=p;
		size++;
	} 
	linklist p=l;
	while(p->next!=NULL){
		p=p->next;
	}
	p->next=l;
}
void out_list(linklist h){    //        
	linklist p=h->next;
	while(p!=h){
		printf("   :%d ",p->data);
		p=p->next;
	}
	printf("size is %d
"
,size); } void dele(linklist h){ // num int rmnum; scanf("%d",&rmnum); linklist p=h->next; linklist q=h; while(p!=h){ if(p->data==rmnum){ q->next=p->next; p->next=NULL; free(p); size--; break; } p=p->next; q=q->next; } } void inset(linklist l){ // printf(" ( )"); int num; // scanf("%d",&num); while(num--){ linklist p; p=(linklist)malloc(sizeof(node)); scanf("%d",&p->data); p->next=l->next; l->next=p; size++; } } int main(){ char choose; linklist h; // h=(node*)malloc(sizeof(node)); h->data=666; h->next=NULL; printf(" :
c------
i------
d------
s------
x------
"
); while(1){ scanf("%c",&choose); switch(choose){ case 'c':head_creat(h);break; case 'i':inset(h);break; case 'd':dele(h);break; case 's':out_list(h);break; case 'x':return 0; // default:printf(" "); } } }

미 완성 계속...꼬꼬...다음은 순환 큐 의 C 언어 구현 과 순환 큐 와 순환 링크 의 차 이 를 보충 합 니 다.

좋은 웹페이지 즐겨찾기