亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

單鏈表的練習-頭插法

發布時間:2020-07-16 01:51:09 來源:網絡 閱讀:628 作者:dreamhorse 欄目:編程語言
/*單鏈表的練習-頭插法*/
/*單鏈表由頭結點就可以唯一確定*/
#include?<malloc.h>
#include?<stdio.h>
#include?<stdlib.h>
//定義單鏈表結構
typedef?struct?Node{
	int?data;??//數據域
	Node?*?pNext;??//指針域
}NODE,*?PNODE;

PNODE?create_list(void);??//創建鏈表
void?show_list(PNODE?pHead);??//顯示鏈表
void?insert(PNODE?pHead,int?pos,int?inval);?//向鏈表中某個位置插入元素
int?deleteList(PNODE?pHead,int?pos);?//刪除鏈表某個位置上的值
void?find(PNODE?pHead,int?fval);??//在鏈表中查找某個元素

void?main(){
	PNODE?pHead?=?NULL;??//定義一個頭結點,初始值為空
	pHead?=?create_list();
	show_list(pHead);
	insert(pHead,2,100);
	show_list(pHead);
	find(pHead,3);
	printf("你所刪除的值是%d\n",deleteList(pHead,2));
	show_list(pHead);
}

PNODE?create_list(void){
	int?length,val;
	PNODE?pHead?=?(PNODE)malloc(sizeof(NODE));??//向內存申請頭節點空間
	pHead->pNext=NULL;???//開始的時候只有頭結點自身,沒有其它結點
	if(NULL?==?pHead){
		printf("分配失敗,程序終止");
		exit(-1);
	}
	printf("請輸入需要生成的單鏈表的長度:");
	scanf("%d",&length);
	for(int?i=0;i<length;i++){????//for循環生成指定個數的結點
		printf("請輸入第%d個節點的值:?",i+1);
		scanf("%d",&val);
		PNODE?pNew?=?(PNODE)malloc(sizeof(NODE));
		if(NULL?==?pNew){
		printf("分配失敗,程序終止");
		exit(-1);
		}
		pNew->data=val;???//給新申請的結點數據域賦值
		pNew->pNext=pHead->pNext;??//頭指針指向的下一個結點的地址賦給了新結點的指針域,也就是在當前頭結點后面直接插入一個新結點
		pHead->pNext=pNew;?//頭結點指向了新的結點

	}
	return?pHead;???//函數返回頭結點的地址
}

void?show_list(PNODE?pHead){
	printf("單鏈表的值如下:\n");
	PNODE?P?=?pHead->pNext;
	while(P?!=?NULL){??????//while巡檢打印出所以結點,直到下個結點不存在
		printf("%d?",P->data);
		P=P->pNext;
	}
	printf("\n");
}

void?insert(PNODE?pHead,int?pos,int?inval){
	PNODE?P?=?pHead;
	int?j=0;
	while(P?!=?NULL?&&?j<pos-1){???//如果結點不為空,把P指針移動到插入位置的前一個結點位置
		P?=?P->pNext;
		j++;
	}
	if(P?==?NULL){
		printf("插入失敗\n");
		exit(-1);
	}else{
		PNODE?pNew?=?(PNODE)malloc(sizeof(NODE));??//申請新的結點
		pNew->data=inval;???//將要插入的值賦值給新結點的數據域
		pNew->pNext=P->pNext;??//新結點指向P指針指向的下一個結點
		P->pNext=pNew;?//P指針所在的結點指向新結點
		printf("你已經成功的插入了元素%d到鏈表中.\n",inval);
	}
}

int?deleteList(PNODE?pHead,int?pos){
	PNODE?P?=?pHead,S;
	
	int?j=0,x;
	if(P?!=?NULL?&&?j<pos-1){
		P?=?P->pNext;
		j++;
	}
	if(P?==?NULL){
		printf("刪除失敗,數組是空的");
		exit(-1);
	}else{
		S?=?P->pNext;
		P->pNext?=?S->pNext;
		x?=?S->data;
		free(S);
		return?x;
	}
}

void?find(PNODE?pHead,int?fval){
	PNODE?P?=?pHead;
	int?cnt=0;
	if(P?==?NULL){
		printf("不用找了,鏈表是空的\n");
		exit(-1);
	}
	while(P?!=?NULL){
		P?=?P->pNext;
		++cnt;
		if(P->data==fval){
			printf("你要找的數%d在鏈表中,它在鏈表的第%d個位置\n",fval,cnt);
			break;
		}
	}
}

結果截圖

單鏈表的練習-頭插法

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

浦城县| 阿克陶县| 连州市| 祥云县| 九台市| 闽清县| 广灵县| 盐池县| 安化县| 靖州| 绵竹市| 林周县| 南安市| 平安县| 星子县| 图片| 梅河口市| 宜宾县| 乌兰浩特市| 佛坪县| 博野县| 长泰县| 长丰县| 武平县| 崇阳县| 射洪县| 淄博市| 巴彦县| 健康| 繁峙县| 阿尔山市| 元氏县| 五家渠市| 宝鸡市| 溧阳市| 文安县| 兴海县| 新郑市| 文成县| 剑阁县| 宜兰县|