데이터 구 조 는 배열 과 링크 로 대기 열 을 실현 합 니 다.

3251 단어 데이터 구조
본문 에서 해결 한 문 제 는:
10. 각각 배열 과 링크 로 대기 열 기능 을 실현 한다.
10.1 배열 로 대기 열 을 실현 합 니 다. 코드 는 다음 과 같 습 니 다.
/****************************10、              *************************************/
/****************10.1、         *****************/
#include
#include

int count=0;//         
//  
void push(int x,int array[])
{
	if(count>=100)
	{
		printf("    !!
"); }else { array[count++]=x; } } // void pop(int array[]) { if(count==0) { printf(" !!
"); }else{ int i; for(i=0;i "); for(i=count-1;i>=0;i--) { printf("%d ",array[i]); } printf("-->
"); } } int main() { int x; int data; int array[100]={0}; char r; bool t=true; while(t) { printf(" :1: ;2:
"); scanf("%d",&x); if(x == 1) { // printf(" :
"); scanf("%d",&data); push(data,array); printf(" :
"); print_queue(array); }else if(x == 2){ // pop(array); printf(" :
"); print_queue(array); } printf(" :y: ; n:
"); scanf("%s",&r); if(r == 'n') { t = false; } } printf("
"); return 0; }

10.2 링크 로 대기 열 을 실현 합 니 다. 코드 는 다음 과 같 습 니 다.
/****************************10、              *************************************/
/****************10.2、         *****************/
#include
#include
typedef struct LNode
{
	int data;
	LNode *next;
}LNode,*LinkList;

//  
void push(int x,LinkList L)
{
	LinkList s;
	s=(LinkList)malloc(sizeof(LNode));
	s->data = x;  
    s->next = L->next;  
    L->next = s;
}
//  
void pop(LinkList p)
{
	if(p == NULL)
	{
		printf("    !!
"); }else{ LinkList q; q=(LinkList)malloc(sizeof(LNode)); q = p->next; while(q->next != NULL) { p = p->next; q = q->next; printf("%d ",p->data); printf("%d ",q->data); } //printf("%d ",p->data); p->next = NULL; } } // void printf_queue(LinkList p) { if(p == NULL) { printf(" !!
"); }else{ printf("--> "); while(p != NULL) { printf("%d ",p->data); p = p->next; } printf("-->
"); } } int main() { int x; int data; LinkList L; L=(LinkList)malloc(sizeof(LNode)); L->next = NULL; char r; bool t=true; while(t) { printf(" : 1: ; 2: ;
"); scanf("%d",&x); if(x == 1) { printf(" :
"); scanf("%d",&data); // push(data,L); printf(" :
"); printf_queue(L->next); }else if(x == 2) { // pop(L->next); printf(" :
"); printf_queue(L->next); } printf(" : y: ; n: ;
"); scanf("%s",&r); if(r == 'n') { t = false; } } printf(" !!
"); return 0; }

만약 의문 이 있 으 면 제때에 제기 해 주 십시오. 감사합니다!!

좋은 웹페이지 즐겨찾기