国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C/C++ - C語言數據結構之線性表的鏈式存儲結構

C語言數據結構之線性表的鏈式存儲結構

2022-03-05 17:41yyy言者 C/C++

線性表是最基本、最簡單、也是最常用的一種數據結構。線性表(linear list)是數據結構的一種,一個線性表是n個具有相同特性的數據元素的有限序列,這篇文章帶你學習下線性表的鏈式存儲結構

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

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

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

2.原理是:

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

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

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


最后一個數據:

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

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

?
1
2
3
4
5
6
while(p!=NULL)
    {
        printf("%c",p->data);
        p=p->next;
        printf("地址變化:%p\n",p);
    }

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

?
1
2
3
4
5
6
7
while(j<i-1 && p!=NULL)  //指針p不為空,當i=2,3,4,5執行下面語句
{
    j++;   //執行
    p=p->next;  //
//  printf("%p",p);
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#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; //參數指針 P,s結構體指針 ,指針賦值,賦值的是地址
    if(i<=0)
    return false;
    
    
    while(j<i-1 && p!=NULL)  //指針p不為空,當i=2,3,4,5執行下面語句
    {
        j++;   //執行
        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,循環
    // 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; 
    //這里執行一次
    ListInsert(h,2,'b');
    //這里:
    ListInsert(h,3,'c');
    ListInsert(h,4,'d');
    ListInsert(h,5,'e');
    
    
    printf("  (3)輸出單鏈表h:");
    DispList(h);
    
    
    }

效果圖:

C語言數據結構之線性表的鏈式存儲結構

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

原文鏈接:https://blog.csdn.net/qq_51813155/article/details/121502634

延伸 · 閱讀

精彩推薦
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內存中的數據都是暫時的,當程序結束時,它們都將丟失,為了永久性的保存大量的數據,C語言提供了對文件的操作,這篇文章主要給大家介紹了關于C語言中文件...

    針眼_6702022-01-24
  • C/C++C/C++經典實例之模擬計算器示例代碼

    C/C++經典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關于C/C++經典實例之模擬計算器的相關資料,文中通過示...

    jia150610152021-06-07
  • C/C++C語言實現電腦關機程序

    C語言實現電腦關機程序

    這篇文章主要為大家詳細介紹了C語言實現電腦關機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++深入理解goto語句的替代實現方式分析

    深入理解goto語句的替代實現方式分析

    本篇文章是對goto語句的替代實現方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網7342020-12-03
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++c++ 單線程實現同時監聽多個端口

    c++ 單線程實現同時監聽多個端口

    這篇文章主要介紹了c++ 單線程實現同時監聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數使用

    詳解c語言中的 strcpy和strncpy字符串函數使用

    strcpy 和strcnpy函數是字符串復制函數。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚洲第一se情网站 | 亚洲性在线 | 日韩在线 | 免费av观看 | 国产精品久久久久久久久久久久午夜片 | 一区二区三区在线视频播放 | 91久草视频 | 精品视频网站 | 成人黄色小视频 | 亚洲精品h | 成人午夜激情 | 99久久婷婷国产综合精品草原 | 成人国产精品免费观看 | 精品日韩一区 | 日韩在线视频观看 | 不卡一区二区三区视频 | 国产精品亚洲综合 | 高清视频一区 | 久久视频在线看 | 成年人免费网站 | 日本a视频在线观看 | 亚洲国产视 | 国内自拍视频在线观看 | 日韩高清av | 免费国产一区二区 | 在线视频一区二区 | 亚洲 欧美 日韩 在线 | 久久久精品国产99久久精品芒果 | 夜夜操av | 成人日韩| 久久亚洲国产 | 黄色美女视频网站 | 日本精品在线观看 | 久久亚洲国产精品 | 欧美freesex黑人又粗又大 | 日韩av一区二区在线观看 | 久久99国产精品久久99大师 | 色免费视频 | 天操天天干 | 欧美激情视频一区二区三区 | 欧美精品一区二区三区四区五区 |