欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

 更新時(shí)間:2021年11月26日 11:02:45   作者:yyy言者  
線性表是最基本、最簡(jiǎn)單、也是最常用的一種數(shù)據(jù)結(jié)構(gòu)。線性表(linear list)是數(shù)據(jù)結(jié)構(gòu)的一種,一個(gè)線性表是n個(gè)具有相同特性的數(shù)據(jù)元素的有限序列,這篇文章帶你學(xué)習(xí)下線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

1.什么是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu) —鏈表

存儲(chǔ)結(jié)點(diǎn):包括元素本身的信息,還有元素之間的關(guān)系邏輯的信息

這個(gè)結(jié)點(diǎn)有:數(shù)據(jù)域和指針域
一個(gè)指針域:指向后繼結(jié)點(diǎn), 單鏈表
二個(gè)指針域: 指向前繼結(jié)點(diǎn),還有一個(gè)指向后繼結(jié)點(diǎn) 雙鏈表

2.原理是:

s=(LinkNode *)malloc(sizeof(LinkNode));//
		s->data=e;             //這里賦值了 
		s->next=p->next;      //  
		p->next=s;  //這里把指針s給到了p


結(jié)點(diǎn)a-> 結(jié)點(diǎn)b -> 結(jié)點(diǎn)c->結(jié)點(diǎn)d

第一個(gè)數(shù)據(jù):
p->data :a 對(duì)應(yīng)的 p->next是 存儲(chǔ)地址為 007531F0
第二個(gè):
p->data :b 對(duì)應(yīng)的 p->next是 存儲(chǔ)地址為::00753200
第三個(gè)數(shù)據(jù):
p->data :c 對(duì)應(yīng)的 p->next是 存儲(chǔ)地址為: 00753210


最后一個(gè)數(shù)據(jù):

p->data :e 對(duì)應(yīng)的 p->next是 存儲(chǔ)地址為:00000000

這樣在輸出時(shí):利用p=p->next進(jìn)行循環(huán)
p->next是第一個(gè),
p->next->next 是第二個(gè)
p->next->next->next 是第三個(gè)

while(p!=NULL)
	{
		printf("%c",p->data);
		p=p->next;
		printf("地址變化:%p\n",p); 
	}

這里的循環(huán)使p=p->next.(一直指向下一個(gè)結(jié)點(diǎn))

	while(j<i-1 && p!=NULL)  //指針p不為空,當(dāng)i=2,3,4,5執(zhí)行下面語(yǔ)句 
	{
		j++;   //執(zhí)行 
		p=p->next;  //
	//	printf("%p",p); 
	}
	
#include<stdio.h>
#include<malloc.h>
typedef char ElemType;

typedef struct LNode
{
	ElemType data;
	struct LNode *next;  //指針位置 
}LinkNode;




bool ListInsert(LinkNode *&L,int i,ElemType e)
{
	int j=0;
	LinkNode *p=L,*s; //參數(shù)指針 P,s結(jié)構(gòu)體指針 ,指針賦值,賦值的是地址 
	if(i<=0)
	return false;
	
	
	while(j<i-1 && p!=NULL)  //指針p不為空,當(dāng)i=2,3,4,5執(zhí)行下面語(yǔ)句 
	{
		j++;   //執(zhí)行 
		p=p->next;  //
	//	printf("%p",p); 
	}
	
	if(p==NULL)
	return false;
	
	
	else
	{
		s=(LinkNode *)malloc(sizeof(LinkNode));
		s->data=e;             //這里賦值了 
		s->next=p->next;      //  
		p->next=s;  //這里把指針s給到了p.
		
		printf("%p\n",s->next);
		 	printf("%p\n",p->next);
		 
		 	
		return true;
	}
}

void DispList(LinkNode *L)
{
	LinkNode *p=L->next;  //這個(gè)L->next就是p->next,
	//不為空,
	// p->next指向了s, 返回  a,循環(huán)
	// p->next->next,  ,指向了 b結(jié)點(diǎn),引用的是 b
	// p->next->next->next ,指向c結(jié)點(diǎn)。
	while(p!=NULL)
	{
		printf("%c",p->data);
		p=p->next;
		printf("地址變化:%p\n",p); 
	}
	printf("\n");
}



void InitList(LinkNode *&L)
{
	L=(LinkNode *)malloc(sizeof(LinkNode));
	
	printf("%p\n",L); 
	L->next=NULL;  //初始時(shí)指針值為null 
}



int main()
{
		LinkNode *h;
	ElemType e;
	printf("單鏈表的基本運(yùn)算如下:\n");
	printf("  (1)初始化單鏈表h\n");
	
	InitList(h);
	printf("  (2)依次采用尾插法插入a,b,c,d,e元素\n");
	
	ListInsert(h,1,'a'); // 	s->data=e;  bbb';       
	//	                         s->next=p->next;      //  
	//	                      p->next=s;  
	//這里執(zhí)行一次 
	ListInsert(h,2,'b');
	//這里: 
	ListInsert(h,3,'c');
	ListInsert(h,4,'d');
	ListInsert(h,5,'e');
	
	
	printf("  (3)輸出單鏈表h:");
	DispList(h);
	
	
	}












效果圖:

在這里插入圖片描述

到此這篇關(guān)于C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu) 的文章就介紹到這了,更多相關(guān)C語(yǔ)言 數(shù)據(jù)結(jié)構(gòu)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++中string轉(zhuǎn)換為char*類型返回后亂碼問(wèn)題解決

    C++中string轉(zhuǎn)換為char*類型返回后亂碼問(wèn)題解決

    這篇文章主要介紹了C++中string轉(zhuǎn)換為char*類型返回后亂碼問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • mfc入門教程之通過(guò)控制變量制作計(jì)算器

    mfc入門教程之通過(guò)控制變量制作計(jì)算器

    這篇文章主要介紹了mfc入門教程之通過(guò)控制變量制作計(jì)算器,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04
  • VS2019中QT連接及使用的方法步驟

    VS2019中QT連接及使用的方法步驟

    這篇文章主要介紹了VS2019中QT連接及使用的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • C++實(shí)現(xiàn)萬(wàn)年歷小功能

    C++實(shí)現(xiàn)萬(wàn)年歷小功能

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)萬(wàn)年歷小功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • C++回溯與分支限界算法分別解決背包問(wèn)題詳解

    C++回溯與分支限界算法分別解決背包問(wèn)題詳解

    給定n種物品和一背包。物品i的重量是wi,其價(jià)值為vi,背包的容量為C。問(wèn)應(yīng)如何選擇裝入背包的物品,使得裝入背包中物品的總價(jià)值最大?下面我們分別用回溯與分支限界方法解決
    2022-06-06
  • C++類實(shí)現(xiàn)通訊錄功能

    C++類實(shí)現(xiàn)通訊錄功能

    這篇文章主要為大家詳細(xì)介紹了C++類實(shí)現(xiàn)通訊錄功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C++前綴樹字典樹的學(xué)習(xí)與模擬實(shí)現(xiàn)代碼示例

    C++前綴樹字典樹的學(xué)習(xí)與模擬實(shí)現(xiàn)代碼示例

    這篇文章主要介紹了C++前綴樹字典樹的學(xué)習(xí)與模擬實(shí)現(xiàn)代碼示例,Trie又被稱為前綴樹、字典樹,所以當(dāng)然是一棵樹,上面這棵Trie樹包含的字符串集合是{in,inn,int,tea,ten,to},每個(gè)節(jié)點(diǎn)的編號(hào)是我們?yōu)榱嗣枋龇奖慵由先サ?需要的朋友可以參考下
    2023-07-07
  • C++?動(dòng)態(tài)規(guī)劃算法使用分析

    C++?動(dòng)態(tài)規(guī)劃算法使用分析

    動(dòng)態(tài)規(guī)劃算法通常用于求解具有某種最優(yōu)性質(zhì)的問(wèn)題。在這類問(wèn)題中,可能會(huì)有許多可行解。每一個(gè)解都對(duì)應(yīng)于一個(gè)值,我們希望找到具有最優(yōu)值的解
    2022-03-03
  • 深入理解C/C++中的寫時(shí)拷貝

    深入理解C/C++中的寫時(shí)拷貝

    這篇文章主要給大家介紹了C/C++中寫時(shí)拷貝的相關(guān)資料,所謂寫時(shí)拷貝也就是拖延版的深拷貝,下面文章中介紹的非常清楚,需要的朋友可以參考學(xué)習(xí),下面來(lái)一起看看吧。
    2017-03-03
  • 查找算法之二分查找的C++實(shí)現(xiàn)

    查找算法之二分查找的C++實(shí)現(xiàn)

    今天小編就為大家分享一篇關(guān)于查找算法之二分查找的C++實(shí)現(xiàn),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12

最新評(píng)論