亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C語言數(shù)據(jù)結構之線性表的鏈式存儲結構

 更新時間:2021年11月26日 11:02:45   作者:yyy言者  
線性表是最基本、最簡單、也是最常用的一種數(shù)據(jù)結構。線性表(linear list)是數(shù)據(jù)結構的一種,一個線性表是n個具有相同特性的數(shù)據(jù)元素的有限序列,這篇文章帶你學習下線性表的鏈式存儲結構

1.什么是線性表的鏈式存儲結構 —鏈表

存儲結點:包括元素本身的信息,還有元素之間的關系邏輯的信息

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

2.原理是:

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


結點a-> 結點b -> 結點c->結點d

第一個數(shù)據(jù):
p->data :a 對應的 p->next是 存儲地址為 007531F0
第二個:
p->data :b 對應的 p->next是 存儲地址為::00753200
第三個數(shù)據(jù):
p->data :c 對應的 p->next是 存儲地址為: 00753210


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

p->data :e 對應的 p->next是 存儲地址為:00000000

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

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

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

	while(j<i-1 && p!=NULL)  //指針p不為空,當i=2,3,4,5執(zhí)行下面語句 
	{
		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結構體指針 ,指針賦值,賦值的是地址 
	if(i<=0)
	return false;
	
	
	while(j<i-1 && p!=NULL)  //指針p不為空,當i=2,3,4,5執(zhí)行下面語句 
	{
		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;  //這個L->next就是p->next,
	//不為空,
	// p->next指向了s, 返回  a,循環(huán)
	// p->next->next,  ,指向了 b結點,引用的是 b
	// p->next->next->next ,指向c結點。
	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;  //初始時指針值為null 
}



int main()
{
		LinkNode *h;
	ElemType e;
	printf("單鏈表的基本運算如下:\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);
	
	
	}












效果圖:

在這里插入圖片描述

到此這篇關于C語言數(shù)據(jù)結構之線性表的鏈式存儲結構 的文章就介紹到這了,更多相關C語言 數(shù)據(jù)結構內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C++中string轉換為char*類型返回后亂碼問題解決

    C++中string轉換為char*類型返回后亂碼問題解決

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

    mfc入門教程之通過控制變量制作計算器

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

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

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

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

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

    C++回溯與分支限界算法分別解決背包問題詳解

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

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

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

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

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

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

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

    深入理解C/C++中的寫時拷貝

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

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

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

最新評論