數(shù)據(jù)結(jié)構(gòu)作業(yè)-創(chuàng)新互聯(lián)

1.seqlist.h文件

創(chuàng)新互聯(lián)專注于安岳網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供安岳營(yíng)銷型網(wǎng)站建設(shè),安岳網(wǎng)站制作、安岳網(wǎng)頁(yè)設(shè)計(jì)、安岳網(wǎng)站官網(wǎng)定制、微信小程序服務(wù),打造安岳網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供安岳網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
#ifndef __SEQLIST_H__
#define __SEQLIST_H__

#define MAX 20 	//數(shù)組大容量
typedef int datatype; 	//類型重定義

typedef struct{
	datatype data[MAX]; //存儲(chǔ)順序表的數(shù)組
	int len;	//順序表的長(zhǎng)度
}seqList;

//創(chuàng)建順序表
seqList *list_create();

//判空
int list_empty(seqList *L);

//判滿
int list_full(seqList *L);

//添加元素
int list_add(seqList *L,datatype e);

//遍歷
void list_show(seqList *L);

//任意位置插入
int list_insert_pos(seqList *L,int pos,datatype e);

//任意位置刪除
int list_delete_pos(seqList *L,int pos);

//按位置修改
int list_update_pos(seqList *L,int pos,datatype new_e);

//按值修改
int list_update_var(seqList *L,datatype var1,datatype var2);

//按位置查找
int list_search_pos(seqList *L,int pos);

//按值查找
int list_search_e(seqList *L,datatype e);

//排序
int list_sort(seqList *L);

//求最值
int list_max_min(seqList *L);

//去重
int list_repent(seqList *L);

//銷毀
void list_free(seqList *L);

#endif

2、seqlist.c文件

#include#include#include#include "seqlist.h"

seqList *list_create(){
	seqList *L=(seqList*)malloc(sizeof(seqList));
	if(NULL==L){
		printf("創(chuàng)建失敗\n");
		return NULL;
	}

	//順序表初始化
	L->len=0;

	//數(shù)組初始化
	memset(L,0,sizeof(datatype)*MAX);

	printf("創(chuàng)建成功\n");

	return L; 	//將創(chuàng)建好的順序表返回
}

//判空
int list_empty(seqList *L){
	return L->len==0;
}

//判滿
int list_full(seqList *L){
	return L->len==MAX;
//	return L->len==MAX ? 1:0;

}

//添加元素
int list_add(seqList *L,datatype e){
	//判斷邏輯
	if(list_full(L)){
		printf("表滿,添加失敗\n");
		return 0;
	}
	//添加邏輯
	L->data[L->len]=e;

	//表的變化
	L->len++;printf("添加成功\n");
}

//遍歷
void list_show(seqList *L){
	//判斷邏輯
	if(NULL==L||list_empty(L)){
		printf("遍歷失敗\n");
		return;
	}
	//遍歷邏輯
	printf("此時(shí)順序表中的元素分別是:");
	for(int i=0;ilen;i++){
		printf("%d\t",L->data[i]);
	}
	putchar(10);
}

//任意位置插入
int list_insert_pos(seqList *L,int pos,datatype e){
	//判斷邏輯
	if(list_full(L)||pos<0||pos>(L->len)){
		printf("插入失敗\n");
		return 0;
	}

	//騰空過(guò)程
	for(int i=L->len-1;i>=pos;i--){
	L->data[i+1]=L->data[i];
	}

	//插入數(shù)據(jù)
	L->data[pos]=e;
	printf("插入成功\n");
	//表長(zhǎng)變換
	L->len++;
	return 0;
}

//按位置刪除
int list_delete_pos(seqList *L,int pos){
	//判斷邏輯
	if(list_empty(L)||pos<0||pos>=(L->len)){
		printf("刪除失敗\n");
		return 0;
	}

	//刪除過(guò)程
	for(int i=pos;ilen;i++){
		L->data[i]=L->data[i+1];
	}

	//表長(zhǎng)變換
	L->len--;
	printf("刪除成功\n");
	return 0;
}


//按位置修改
int list_update_pos(seqList *L,int pos,datatype new_e){
	//判斷邏輯
	if(list_empty(L)||pos<0|pos>=(L->len)){
		printf("修改失敗\n");
		return 0;
	}

	//修改過(guò)程
	L->data[pos]=new_e;
	printf("修改成功\n");
	return 0;
}

//按值修改
int list_update_var(seqList *L,datatype var1,datatype var2){
	int a=0;
	//判斷邏輯
	if(list_empty(L)){
		printf("順序表為空\(chéng)n");
		return -1;
	}

	//修改過(guò)程
	for(int i=0;ilen;i++){
		if(L->data[i]==var1){
			L->data[i]=var2;
			a=1;
		}
	}
	if(a==1){
		printf("修改成功\n");
		return 1;
	}
	else{
		printf("沒(méi)有找到該值,修改失敗\n");
		return 0;
	}


}

//按位置查找
int list_search_pos(seqList *L,int pos){
	//判斷邏輯
	if(list_empty(L)){
		printf("順序表為空\(chéng)n");
		return -1;
	}
	if(pos<0||pos>=L->len){
		printf("位置不合法,查找失敗\n");
		return 0;
	}
	//查找過(guò)程
	else{
		printf("該值為%d\n",L->data[pos]);
		return 1;
	}

}

//按值查找
int list_search_e(seqList *L,datatype e){
	//判斷邏輯
	if(list_empty(L)){
		printf("順序表為空,查找失敗\n");
		return -1;
	}
	//查找過(guò)程
	int a=0; 
	for(int i=0;ilen;i++){
		if(L->data[i]==e){
			printf("查找到的下標(biāo)為%d\n",i);
			a=1;
		}
	}
	if(a==1){
		return 1;
	}
	else{
		return 0;
	}
}

//排序
int list_sort(seqList *L){
	datatype temp;
	//判斷邏輯
	if(list_empty(L)){
		printf("順序表為空\(chéng)n");
		return 0;
	}
	
	//排序過(guò)程
	for(int i=0;ilen-1;i++){
		for(int j=0;jlen-1-i;j++){
			if(L->data[j]>L->data[j+1]){
				temp=L->data[j];
				L->data[j]=L->data[j+1];
				L->data[j+1]=temp;
			}
		}
	}
	printf("排序成功\n");
	return 1;
}

//求最值
int list_max_min(seqList *L){
	datatype max=L->data[0];
	datatype min=L->data[0];
	//判斷邏輯
	if(list_empty(L)){
		printf("順序表為空\(chéng)n");
		return 0;
	}

	//求值過(guò)程
	for(int i=0;ilen;i++){
		if(maxdata[i]){
			max=L->data[i];
		}
	}
	for(int i=0;ilen-1;i++){
		if(min>L->data[i]){
			min=L->data[i];
		}
	}
	printf("大值為%d,最小值為%d\n",max,min);
	return 1;
}

//去重
int list_repent(seqList *L){
	//判斷邏輯
	if(list_empty(L)){
	printf("順序表為空\(chéng)n");
	return 0;
	}

	//去重過(guò)程
	for(int i=0;ilen-1;i++){
		for(int j=i+1;jlen;j++){
			if(L->data[i]==L->data[j]){
				for(int k=j;klen-1;k++){
					L->data[k]=L->data[k+1];
				}
				L->len--;
				j--;
			}
		}
	}
}

//銷毀
void list_free(seqList *L){
	if(L!=NULL){
		free(L);
		L=NULL;
		printf("銷毀成功\n");
	}
}

3、main.c文件

#include#include"seqlist.h"
int main(int argc, const char *argv[])
{
	seqList *L=list_create();
	if(NULL==L){
		return -1;
	}

	//調(diào)用添加
	list_add(L,12);
	list_add(L,18);
	list_add(L,25);
	list_add(L,50);
	list_add(L,50);
	list_add(L,25);
	list_add(L,25);

	//調(diào)用遍歷
	list_show(L);

	//調(diào)用插入
	list_insert_pos(L,4,35);
	//調(diào)用遍歷
	list_show(L);

	//調(diào)用刪除
	list_delete_pos(L,4);
	//調(diào)用遍歷
	list_show(L);

	//調(diào)用按位置修改
	list_update_pos(L,3,100);
	//調(diào)用遍歷
	list_show(L);

	//調(diào)用按值修改
	list_update_var(L,12,15);
	//調(diào)用遍歷
	list_show(L);

	//調(diào)用按位置查找
	list_search_pos(L,3);
	//調(diào)用遍歷
	list_show(L);

	//調(diào)用按值查找
	list_search_e(L,25);
	//調(diào)用遍歷
	list_show(L);

	//調(diào)用排序
	list_sort(L);
	//調(diào)用遍歷
	list_show(L);

	//調(diào)用求最值
	list_max_min(L);

	//調(diào)用去重
	list_repent(L);
	//調(diào)用遍歷
	list_show(L);

	//調(diào)用銷毀
	list_free(L);
	L=NULL;
	//調(diào)用遍歷
	list_show(L);

	return 0;
}

4、結(jié)果為

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

本文標(biāo)題:數(shù)據(jù)結(jié)構(gòu)作業(yè)-創(chuàng)新互聯(lián)
文章來(lái)源:http://muchs.cn/article46/dchhhg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、微信小程序、建站公司、外貿(mào)網(wǎng)站建設(shè)、品牌網(wǎng)站制作、軟件開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)