最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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++用一棵紅黑樹同時(shí)封裝出set與map的實(shí)現(xiàn)代碼

    C++用一棵紅黑樹同時(shí)封裝出set與map的實(shí)現(xiàn)代碼

    set中存儲(chǔ)的一般為鍵K即可,而map存儲(chǔ)的一般都是鍵值對(duì)KV,也就是說他們結(jié)構(gòu)是不同的,那么我們?nèi)绾尾拍苡靡活w紅黑樹同時(shí)封裝出set與map兩種容器呢,那么接下來(lái)我們具體地來(lái)研究下STL庫(kù)中是怎樣實(shí)現(xiàn)的,并且進(jìn)行模擬實(shí)現(xiàn),需要的朋友可以參考下
    2024-03-03
  • C++超詳細(xì)梳理基礎(chǔ)知識(shí)

    C++超詳細(xì)梳理基礎(chǔ)知識(shí)

    這篇文章主要介紹了C++基礎(chǔ)概念,? 本次為C++的一個(gè)開篇,重點(diǎn)是更好的理解C++相對(duì)于其他編程語(yǔ)言的一個(gè)特性,之后會(huì)持續(xù)更新,本次專欄計(jì)劃是掌握C++的基礎(chǔ)語(yǔ)法以及常用特性,并且從細(xì)節(jié)上去理解,需要的朋友可以參考一下
    2022-06-06
  • C++線性時(shí)間的排序算法分析

    C++線性時(shí)間的排序算法分析

    這篇文章主要介紹了C++線性時(shí)間的排序算法分析,是非常經(jīng)典的非比較排序算法,對(duì)于C++程序員有很大的借鑒價(jià)值,需要的朋友可以參考下
    2014-08-08
  • C語(yǔ)言/C++如何生成隨機(jī)數(shù)

    C語(yǔ)言/C++如何生成隨機(jī)數(shù)

    這篇文章主要介紹了C語(yǔ)言/C++如何生成隨機(jī)數(shù),C語(yǔ)言/C++產(chǎn)生隨機(jī)數(shù)主要用到的是rand()函數(shù), srand()函數(shù),C語(yǔ)言/C++里沒有自帶的random(int number)函數(shù),如何解決?感興趣的小伙伴們可以參考一下
    2016-04-04
  • 如何解決C語(yǔ)言,函數(shù)名與宏沖突

    如何解決C語(yǔ)言,函數(shù)名與宏沖突

    本文介紹了“如何解決C語(yǔ)言,函數(shù)名與宏沖突”,需要的朋友可以參考一下
    2013-03-03
  • C語(yǔ)言 數(shù)據(jù)存儲(chǔ)方式知識(shí)點(diǎn)詳解

    C語(yǔ)言 數(shù)據(jù)存儲(chǔ)方式知識(shí)點(diǎn)詳解

    在本篇文章里小編給大家整理的是關(guān)于C語(yǔ)言 數(shù)據(jù)存儲(chǔ)方式知識(shí)點(diǎn)詳解,有需要的朋友們可以學(xué)習(xí)參考下。
    2020-02-02
  • 淺談c++中的異常處理機(jī)制

    淺談c++中的異常處理機(jī)制

    C++異常處理機(jī)制通過try/catch/throw結(jié)構(gòu)處理運(yùn)行時(shí)錯(cuò)誤,本文就來(lái)介紹一下c++中的異常處理機(jī)制,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-02-02
  • C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之串插入操作

    C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之串插入操作

    這篇文章主要介紹了C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之串插入操作的相關(guān)資料,希望通過本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-10-10
  • C++拋出和接收異常的順序

    C++拋出和接收異常的順序

    這篇文章主要介紹了C++拋出和接收異常的順序,幫助大家更好的理解和學(xué)習(xí)C++,感興趣的朋友可以了解下
    2020-08-08
  • C++實(shí)現(xiàn)迷宮算法實(shí)例解析

    C++實(shí)現(xiàn)迷宮算法實(shí)例解析

    這篇文章主要介紹了C++實(shí)現(xiàn)迷宮算法實(shí)例解析,是一個(gè)比較經(jīng)典的C++算法,有一定的學(xué)習(xí)與借鑒價(jià)值,需要的朋友可以參考下
    2014-07-07

最新評(píng)論

宜城市| 化德县| 驻马店市| 平果县| 龙川县| 贺兰县| 平山县| 乌鲁木齐市| 麦盖提县| 庄河市| 克拉玛依市| 双鸭山市| 南雄市| 崇义县| 大城县| 兴安县| 泰来县| 延川县| 五台县| 广安市| 磴口县| 岑溪市| 进贤县| 临夏县| 化德县| 察雅县| 沽源县| 古交市| 张北县| 沐川县| 咸阳市| 玉屏| 图们市| 恩平市| 马公市| 广平县| 油尖旺区| 梧州市| 博客| 彭州市| 平原县|