日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

离散存储_链表

發布時間:2024/9/21 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 离散存储_链表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

鏈表的定義:

鏈表也是一種線性表,它的數據的邏輯組織形式是一維的。鏈表的物理存儲結構使用一組地址任意的存儲單元存儲數據的。在鏈表中每個結點可以是一個結構體元素,當然也可以是其他構造類型元素。在鏈表的每一個結點中,有一個專門用來存檔指針的域,用這個指針來存放后繼結點的地址。 一個鏈表通常有一個表頭,它是一個指針變量,用來存放第一個結點的地址。此外,鏈表的最后一個結點的指針域要置空(NULL),因為它沒有后繼結點。 一個鏈表的結點可以使用以下代碼描述: typedef struct Node {int data; /*數據域*/struct Node * next; /*指針域*/ } NODE, *PNODE;

創建一個鏈表:

#include<stdio.h> #include<stdlib.h> #include<malloc.h>typedef struct Node {int data; /*數據域*/struct Node * pNext; /*指針域*/ } NODE, * PNODE;PNODE create_list(void); void traverse_list(PNODE);int main(void) {PNODE pHead= NULL;pHead = create_list(); //創建一個非循環單鏈表return 0; }PNODE create_list(void) {int len;int i;int val;PNODE pHead = (PNODE)malloc(sizeof(NODE));if(NULL == pHead){printf("分配失敗!\n");exit(-1);}PNODE pTail = pHead;pTail->pNext = NULL;printf("請輸入鏈表的長度:len = ");scanf("%d",&len);for(i=0;i<len;i++){printf("請輸入第 %d 個結點的值:",i+1);scanf("%d",&val);PNODE pNew = (PNODE)malloc(sizeof(NODE));if(NULL == pHead){printf("分配失敗!\n");exit(-1);}pNew->data = val;pTail->pNext = pNew; //pTail指向最后一個結點pNew->pNext = NULL;pTail = pNew;}return pHead;}

遍歷鏈表:

void traverse_list(PNODE pHead) {PNODE p = pHead->pNext;while(NULL != p){printf("%d ",p->data);p = p->pNext;}printf("\n"); }

判斷鏈表是否為空:

int is_empty(PNODE pHead) {if(NULL == pHead){printf("鏈表為空!\n");return 1;}else{return 0;} }

計算鏈表的長度:

int length_list(PNODE pHead) {PNODE p = pHead->pNext;int len = 0;while(NULL != p){len++;p = p->pNext;}return len; }



















轉載于:https://www.cnblogs.com/xpeng-V/p/7349672.html

總結

以上是生活随笔為你收集整理的离散存储_链表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。