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

C語言數(shù)據(jù)結(jié)構(gòu)之單鏈表的查找和建立

 更新時間:2022年09月22日 10:47:43   作者:程序喵正在路上  
鏈表是一種物理存儲結(jié)構(gòu)上非連續(xù)、非順序的存儲結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過鏈表中的指針鏈接次序?qū)崿F(xiàn)的。本文將和大家一起聊聊C語言中單鏈表的查找和建立,感興趣的可以學(xué)習(xí)一下

單鏈表的查找

其實在單鏈表的插入和刪除中,我們已經(jīng)使用過單鏈表的查找方法,因為插入和刪除的前提都是先找到對應(yīng)的結(jié)點,所以這里就不再多解釋

按位查找

GetElem(L, i):按位查找操作。獲取表 L 中第 i 個位置的元素的值

//按位查找
LNode * GetElem(LinkList L, int i) {
	if (i < 0) return false;

	LNode *p;		//指針p指向當前掃描到的結(jié)點
	int j = 0;		//當前p指向的是第幾個結(jié)點
	p = L;			//L指向頭結(jié)點,頭結(jié)點是第 0 個結(jié)點

	//循環(huán)找到第 i-1 個結(jié)點
	while (p != NULL && j < i) {
		p = p->next;
		j++;
	}
	return p;
}

按值查找

LocateElem(L, e):按值查找操作。在表 L 中查找具有給定關(guān)鍵字值的元素

//按值查找
LNode * LocateElem(LinkList L, ElemType e) {
    LNode *p = L->next;
    //從第1個結(jié)點開始查找數(shù)據(jù)域為e的結(jié)點
    while (p && p->data != e) {
        p = p->next;
    }
    return p;

單鏈表的建立

如果給你很多個數(shù)據(jù)元素(ElemType),要把它們存到一個單鏈表里面,怎么操作呢?

第一步:初始化一個單鏈表

第二步:每次取一個數(shù)據(jù)元素,插入到表尾/表頭

尾插法

算法步驟:

1.創(chuàng)建一個只有頭結(jié)點的空鏈表

2.尾指針 r 初始化,指向頭結(jié)點

3.接收用戶輸入的值,判斷是否結(jié)束插入,不結(jié)束則插入表中

  • 創(chuàng)建新結(jié)點 *s
  • 將用戶輸入的值賦給新節(jié)點 *s 的數(shù)據(jù)域
  • 將新節(jié)點 *s 插入到尾結(jié)點 *r 之后
  • 尾指針 r 指向新的尾結(jié)點 *s
  • 用戶繼續(xù)輸入
//尾插法建立單鏈表
LinkList List_TailInsert(LinkList &L) {
    int x;        //假設(shè)ElemType為整型        
    L = (LinkList)malloc(sizeof(LNode));    //建立頭結(jié)點
    LNode *s, *r = L;        //r為表尾指針
    scanf("%d", &x);        //輸入結(jié)點的值
    while (x != 9999) {        //輸入9999表示結(jié)束
        s = (LNode *)malloc(sizeof(LNode));
        s->data = x;
        r->next = s;
        r = s;                //r指向新的表尾結(jié)點
        scanf("%d", &x);
    }
    r->next = NULL;        //尾結(jié)點指針置空
    return L;
}

頭插法建立單鏈表

算法步驟:

1.創(chuàng)建一個只有頭結(jié)點的空鏈表

2.接收用戶輸入的值,判斷是否結(jié)束插入,不結(jié)束則插入表中

  • 創(chuàng)建新結(jié)點 *s
  • 將用戶輸入的值賦給新節(jié)點 *s 的數(shù)據(jù)域
  • 將新節(jié)點 *s 插入到頭結(jié)點之后
  • 用戶繼續(xù)輸入
//頭插法建立單鏈表
LinkList List_HeadInsert(LinkList &L) {
    LNode *s;
    int x;        //假設(shè)ElemType為整型        
    L = (LinkList)malloc(sizeof(LNode));    //建立頭結(jié)點
    L->next = NULL;
    scanf("%d", &x);        //輸入結(jié)點的值
    while (x != 9999) {        //輸入9999表示結(jié)束
        s = (LNode *)malloc(sizeof(LNode));
        s->data = x;
        s->next = L->next;
        L->next = s;
        scanf("%d", &x);
    }
    return L;
}

記得 L->next = NULL; 這一句不能漏了,不然會出問題

到此這篇關(guān)于C語言數(shù)據(jù)結(jié)構(gòu)之單鏈表的查找和建立的文章就介紹到這了,更多相關(guān)C語言單鏈表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • c語言簡單實現(xiàn)文件 r/w 操作方法

    c語言簡單實現(xiàn)文件 r/w 操作方法

    由于在 C 語言中 '\' 一般是轉(zhuǎn)義字符的起始標志,故在路徑中需要用兩個 '\' 表示路徑中目錄層次的間隔,也可以使用 '/' 作為路徑中的分隔符,本文重點給大家介紹用c語言簡單實現(xiàn)文件 r/w 操作方法,感興趣的朋友一起學(xué)習(xí)吧
    2021-05-05
  • C++?多線程編程pthread的基本使用詳解

    C++?多線程編程pthread的基本使用詳解

    在C++開發(fā)中,原生的線程庫主要有兩個,一個是C++11提供的<thread>(std::thread類),另一個是Linux下的<pthread.h>(p_thread類),本文主要介紹pthread的基本使用方式,需要的朋友可以參考下
    2024-05-05
  • Matlab繪制酷炫坐標區(qū)域的方法詳解

    Matlab繪制酷炫坐標區(qū)域的方法詳解

    這篇文章主要為大家詳細介紹了如何利用Matlab編寫一個能讓坐標區(qū)域變得很炫酷的修飾函數(shù),文中的示例代碼講解詳細,感興趣的可以了解一下
    2022-05-05
  • C語言練習(xí)之掃雷小游戲

    C語言練習(xí)之掃雷小游戲

    這篇文章主要為大家詳細介紹了C語言練習(xí)之掃雷小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • C語言解決螺旋矩陣算法問題的代碼示例

    C語言解決螺旋矩陣算法問題的代碼示例

    這篇文章主要介紹了C語言解決螺旋矩陣算法問題的代碼示例,螺旋矩陣中的數(shù)字由第一行開始到右邊不斷變大,向下變大,向左變大,向上變大,如此循環(huán)...需要的朋友可以參考下
    2016-04-04
  • C語言 一級指針與二級指針詳細介紹

    C語言 一級指針與二級指針詳細介紹

    這篇文章主要介紹了C語言 一級指針與二級指針詳細介紹的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • C++實現(xiàn)校園運動會報名系統(tǒng)

    C++實現(xiàn)校園運動會報名系統(tǒng)

    這篇文章主要為大家詳細介紹了C++實現(xiàn)校園運動會報名系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • C++ 獲取URL內(nèi)容的實例

    C++ 獲取URL內(nèi)容的實例

    這篇文章主要介紹了C++ 獲取URL內(nèi)容的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • C語言數(shù)組詳細介紹

    C語言數(shù)組詳細介紹

    大家好,本篇文章主要講的是C語言數(shù)組詳細介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • C語言 格式化讀寫文件詳解

    C語言 格式化讀寫文件詳解

    本文主要介紹C語言 格式化讀寫文件,這里提供了關(guān)于格式化讀寫文件的基本資料及實現(xiàn)示例代碼,有興趣的小伙伴可以參考下,以便理解學(xué)習(xí)
    2016-08-08

最新評論