真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

【數(shù)據(jù)結(jié)構(gòu)】棧的基本操作與棧的應(yīng)用-創(chuàng)新互聯(lián)

  1. 棧(Stack):插入和刪除只在一端的線性表就是棧

    成都創(chuàng)新互聯(lián)公司不只是一家網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司;我們對營銷、技術(shù)、服務(wù)都有自己獨特見解,公司采取“創(chuàng)意+綜合+營銷”一體化的方式為您提供更專業(yè)的服務(wù)!我們經(jīng)歷的每一步也許不一定是最完美的,但每一步都有值得深思的意義。我們珍視每一份信任,關(guān)注我們的成都網(wǎng)站設(shè)計、成都網(wǎng)站制作質(zhì)量和服務(wù)品質(zhì),在得到用戶滿意的同時,也能得到同行業(yè)的專業(yè)認(rèn)可,能夠為行業(yè)創(chuàng)新發(fā)展助力。未來將繼續(xù)專注于技術(shù)創(chuàng)新,服務(wù)升級,滿足企業(yè)一站式全網(wǎng)整合營銷推廣需求,讓再小的品牌網(wǎng)站設(shè)計也能產(chǎn)生價值!
  2. 結(jié)構(gòu):
    棧結(jié)構(gòu)

  3. 棧底(base):不能進行插入和刪除的一端就是棧底。

  4. 棧頂(top):可以插入刪除的那一端就是棧頂。

  5. 棧頂(top):可以插入刪除的那一端就是棧頂。

  6. 初始值:base = 0;top = 0;棧底的初始值即位置不會改變,每進棧一條數(shù)據(jù),棧頂?shù)奈恢枚紩l(fā)生改變,當(dāng)沒有數(shù)據(jù)時棧頂?shù)某跏嘉恢脼?;

  7. 進棧(插入數(shù)據(jù))push:將新值插入到棧頂位置,同時棧頂改變一個位置
    data[top] = A;
    top ++;

  8. 棧滿:當(dāng)棧頂?shù)闹档扔跅5拇箝L度時,說明棧滿。
    top == maxsize - 1

  9. 出棧(刪除)POP:往下改變棧頂?shù)奈恢眉纯伞?br />top --;

  10. 出棧(刪除)POP:往下改變棧頂?shù)奈恢眉纯伞?br />top --;

棧的基本操作

1.定義

struct Stack {int data[maxLength];
	int base;
	int top;
};

2.初始化

struct Stack * initStack() {struct Stack *s = (struct Stack *)malloc(sizeof(struct Stack));
	s->base = 0;
	s->top = s->base;
	return s;
}

3.判斷棧是否為空

int isNull(struct Stack *s) {if (s->base == s->top) {return 1;//空
	}
	else {return 0;
	}
}

4.判斷棧是否滿

int isFull(struct Stack *s) {if (s->top == maxLength) {return 1;//滿
	}
	else {return 0;
	}
}

5.進棧

int push(struct Stack * s,int data) {s->data[s->top] = data;
	s->top++;
}

6.出棧

int pop(struct Stack *s) {int data = s->data[s->top-1];
	s->top--;
	return data;
}

7.main函數(shù)測試

//程序入口
void main() {//初始化
	struct Stack *s = initStack();
	if (s!=NULL) {printf("--->>>初始化成功\n");
	}

	//判斷棧是否為空
	if (!isNull(s)) {printf("--->>>棧不為空\n");
	}else {printf("--->>>棧為空\n");
	}

	//判斷棧滿
	if (isFull(s)) {printf("--->>>棧滿\n");
	}
	else {printf("--->>>棧不滿\n");
	}

	//進棧
	while (1) {if (isFull(s)) {	printf("--->>>棧滿,不允許繼續(xù)插入\n");
		}
		int data;
		printf("請輸入進棧數(shù)據(jù)(0結(jié)束):");
		scanf_s("%d",&data);
		if (data == 0) {	printf("--->>>輸入結(jié)束\n");
			break;
		}
		push(s,data);
	}

	//出棧
	printf("出棧了一個數(shù)據(jù):%d\n",pop(s));

}
補充:棧的應(yīng)用
  1. 進制轉(zhuǎn)換
int hexadecimalConversion(struct Stack * s,int num,int intoSystem) {while (num>0) {s->data[s->top] = num % intoSystem;
		s->top++;
		num /= intoSystem;
	}
	printf("轉(zhuǎn)換后:");
	while (!isNull(s)) {int data = pop(s);
		if (data>=10) {	printf("%c", data+55);
		}else {	printf("%d", data);
		}
		
	}
	printf("\n");
}

void main(){while (1) {int num, intoSystem;
		printf("請輸入一個大于零的十進制整數(shù)(0結(jié)束):");
		scanf_s("%d", &num);
		if (num == 0) {	printf("--->>>輸入結(jié)束\n");
			break;
		}
		printf("請輸入要轉(zhuǎn)換的進制(2,8,10,16):");
		scanf_s("%d", &intoSystem);
		hexadecimalConversion(s, num, intoSystem);
	}
}
  1. 判斷回文數(shù)
void palindromeJudgment(struct Stack *s) {	while (1) {if (isFull(s)) {	printf("--->>>棧滿,不允許繼續(xù)插入\n");
		}
		int data;
		printf("判斷回文--請輸入進棧數(shù)據(jù)(0結(jié)束):");
		scanf_s("%d", &data);
		if (data == 0) {	printf("--->>>輸入結(jié)束\n");
			break;
		}
		push(s, data);
		
	}
	int palindromeArray[maxLength];
	int count = 0;
	while (!isNull(s)) {int data = pop(s);
		palindromeArray[count] = data;
		count++;
	}

	int flag = 0;
	for (int i = 0; i< count;i++) {if (s->data[i] == palindromeArray[i]) {	flag++;
		}
	}
	if (flag == count) {printf("是回文\n");
	}
	else {printf("不是回文\n");
	}
}
補充:鏈棧

入棧:創(chuàng)建新節(jié)點P , 將P的next屬性指向棧頂后,再改變棧頂?shù)闹?br />入棧
出棧:保存棧頂?shù)闹岛?,先改變棧頂?shù)奈恢茫籴尫疟4娴闹怠?br />出棧

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


標(biāo)題名稱:【數(shù)據(jù)結(jié)構(gòu)】棧的基本操作與棧的應(yīng)用-創(chuàng)新互聯(lián)
本文地址:http://weahome.cn/article/ihohd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部