데이터 구조 - C 언어 - 이미 알 고 있 는 선형 표 의 요 소 는 값 으로 점점 증가 하고 질서 있 게 배열 되 며 단일 체인 표 로 저장 구 조 를 한다.효율 적 인 알고리즘 을 써 보 세 요. 표 의 모든 값 이 mink 보다 크 고 maxk 보다 작은 요 소 를 삭제 합 니 다.

2637 단어 데이터 매듭
#include
#include
#define OK 1
#define ERROR 0
#define LEN sizeof(struct LNode) 

struct LNode{
	int data;//   
	struct LNode *next; 
};
typedef struct LNode LNode,* LinkList;
//        
LinkList InitLNode(void){
	LinkList head;
	head = (LinkList)malloc(LEN);//                 
	if(!head){
		printf("        !
"); exit(ERROR); } head->data = 0;// head->next = NULL; return head; } // int CreatLNode(LinkList head){ LinkList pleft,pright; pleft = head; pright = (LinkList)malloc(LEN);// pleft pright printf(" :( -1 )
"); scanf("%d",&pright->data); while(pright->data!=-1){ head->data++;// 1 pleft->next = pright;//pleft pright pleft = pright; pright = (LinkList)malloc(LEN); scanf("%d",&pright->data); } pleft->next = NULL; free(pright);//pright -1 pright return OK; } // int PrintLNode(LinkList head){ if(!head->next){ printf(" !
"); return ERROR; } LinkList p;// p = head->next;// p = head printf("
:
"); while(p){ printf("%d ",p->data); p = p->next; } return OK; } // int delLNode(LinkList head,int num){ if(!head->next){ printf(" !
"); return ERROR; } LinkList pleft,pright; pleft = head;// pright = head->next;// while(pright->data!=num&&pright!=NULL){ pleft = pright; pright = pright->next; } if(pright->data==num){ pleft->next = pright->next;//pleft = head free(pright); head->data--;// 1 }else{ printf("
!
"); } return OK; } // int delLink(LinkList head,float mink,float maxk){ LinkList pleft,pright; pright = pleft = head->next;// while(pright->data<=mink&&pright){ pleft = pright; pright = pright->next; } if(!pright){ printf(" %g %g
",mink,maxk); return ERROR; } while(pright->datadata > mink max delLNode(head,pright->data);// pright free pright pright = pleft->next;// } return OK; } main(){ LinkList head; float mink,maxk; head = InitLNode(); CreatLNode(head); PrintLNode(head); printf("
?
"); scanf("%f%f",&mink,&maxk); delLink(head,mink,maxk); PrintLNode(head); }

좋은 웹페이지 즐겨찾기