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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

数据结构源码笔记(C语言):线性表的单链表示

發布時間:2025/4/16 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构源码笔记(C语言):线性表的单链表示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/* LinkList.c*/ /*線性表的單鏈表示:函數實現*/#include <stdio.h> #include <stdlib.h> //#include "LinkList.h"/*LinkList.h*/ /* 線性表的單鏈表示:類型和界面定義*//* 定義順序表的元素類型。應根據需要修改 */ typedef int DataType;struct Node; /* 單鏈表結點類型 */ typedef struct Node * PNode; /* 結點指針類型 */ struct Node { /* 單鏈表結點結構 */DataType info;PNode link; }; typedef struct Node * LinkList; /* 單鏈表類型 */LinkList createNullList_link( void ) /* 創建一個帶頭結點的空鏈表 */ {LinkList llist = (LinkList)malloc( sizeof( struct Node ) );/*申請表頭結點空間*/if( llist != NULL )llist->link = NULL;else printf("Out of space! \n"); /*創建失敗*/return (llist); }int isNullList_link( LinkList llist) { /* 判斷帶有頭結點的單鏈表llist是否是空鏈表 */return (llist->link == NULL); }PNode locate_link(LinkList llist, DataType x ) { /* 在llist帶有頭結點的單鏈表中找第一個值為x的結點存儲位置 */PNode p;if (llist==NULL) return(NULL);p = llist->link;while( p != NULL && p->info != x ) p = p->link;return (p); }PNode locatePre_link(LinkList llist, PNode p) { /*在單鏈表中求p所指結點的前驅結點*/PNode p1;if (llist==NULL) return(NULL);p1 = llist;while( p1 != NULL && p1->link != p ) p1 = p1->link;return (p1); }int insertPost_link(LinkList llist, PNode p, DataType x) { /* 在llist帶頭結點的單鏈表中,p所指結點后面插入元素x */PNode q = (PNode)malloc( sizeof( struct Node ) ); /* 申請新結點 */if( q == NULL ) {printf( "Out of space!!!\n" ); return(0); }else { q->info = x; q->link = p->link; p->link = q; return(1); } }int deleteV_link( LinkList llist, DataType x ) /* 在llist帶有頭結點的單鏈表中刪除第一個值為x的結點 */ { PNode p, q; p = llist;if(p==NULL) return(0);while( p->link != NULL && p->link->info != x )p = p->link; /*找值為x的結點的前驅結點的存儲位置 */if( p->link == NULL ){ /* 沒找到值為x的結點 */printf("Not exist!\n "); return(0);}else{q = p->link; /* 找到值為x的結點 */p->link = q->link; /* 刪除該結點 */free( q ); return(1); } }/*int deleteP_link(LinkLink llist,PNode p) {PNode *nQ;nQ=locatePre_link(llist, p);deleteV_link(llist, nQ->link) } */int main() {struct Node *pLinkList,*pN,*pM,*pP;int i;pLinkList=createNullList_link();pP=pLinkList;printf("%d\n",pLinkList->info);printf("%d\n",pLinkList->link); printf("uuuuuu\n\n\n");//測試插入函數for(i=0;i<5;i++){printf("\n");insertPost_link(pLinkList->link, pLinkList, i*10);printf("%d\n",pLinkList->link); printf("%d\n",pLinkList->link->info); pLinkList=pLinkList->link;if(pLinkList->info==20) {pN=pLinkList;printf("$$$%d\n",pN->link);printf("$$$%d\n",pN->info);}printf("\n\n");}printf("$$$%d\n",pN->link);//測試查找定位函數{pM=locatePre_link(pP, pN);printf("%d\n",pM->info);printf("%d\n",pM->link);pM=locate_link(pP,10);printf("%d\n",pM->info);printf("%d\n",pM->link); }//測試刪除函數{deleteV_link( pP, 20 );}printf("\nend\n");for(i=0;i<4;i++){ printf("%d\n",pP); printf("%d\n",pP->link->info); pP=pP->link;}return 0; }

數據結構源碼筆記(C語言描述)匯總:

數據結構源碼筆記(C語言):英文單詞按字典序排序的基數排序

數據結構源碼筆記(C語言):直接插入排序

數據結構源碼筆記(C語言):直接選擇排序

數據結構源碼筆記(C語言):置換-選擇算法

數據結構源碼筆記(C語言):Huffman樹字符編碼

數據結構源碼筆記(C語言):Josephus問題之順序表

數據結構源碼筆記(C語言):Josephus問題之循環鏈接表

數據結構源碼筆記(C語言):多項式合并

數據結構源碼筆記(C語言):二叉樹之葉子結點旋轉銷毀

數據結構源碼筆記(C語言):哈夫曼樹

數據結構源碼筆記(C語言):集合的位向量表示

數據結構源碼筆記(C語言):鏈接隊列

數據結構源碼筆記(C語言):鏈接棧

數據結構源碼筆記(C語言):線性表的單鏈表示

數據結構源碼筆記(C語言):線性表的順序表示

數據結構源碼筆記(C語言):棧的基本操作

數據結構源碼筆記(C語言):中綴表達式

數據結構源碼筆記(C語言):希爾插入排序

數據結構源碼筆記(C語言):索引文件建立和查找

數據結構源碼筆記(C語言):冒泡排序

數據結構源碼筆記(C語言):快速排序

數據結構源碼筆記(C語言):可變長度字符串的快速排序

數據結構源碼筆記(C語言):基數排序

數據結構源碼筆記(C語言):二路歸并排序

數據結構源碼筆記(C語言):堆排序

數據結構源碼筆記(C語言):二叉樹搜索樹Kruskal

數據結構源碼筆記(C語言):二叉搜索樹Prim

數據結構源碼筆記(C語言):最短路徑弗洛伊德算法

數據結構源碼筆記(C語言):深度、廣度優先生成樹

數據結構源碼筆記(C語言):鄰接矩陣轉化鄰接表

數據結構源碼筆記(C語言):統計字符串中出現的字符及其次數

數據結構源碼筆記(C語言):順序查找

數據結構源碼筆記(C語言):哈希表的相關運算算法

數據結構源碼筆記(C語言):分塊法查找

數據結構源碼筆記(C語言):二分查找

數據結構源碼筆記(C語言):二叉樹遍歷

數據結構源碼筆記(C語言):二叉平衡樹的相關操作算法

數據結構源碼筆記(C語言):二叉排序樹的基本操作算法

數據結構源碼筆記(C語言):B樹的相關運算算法

總結

以上是生活随笔為你收集整理的数据结构源码笔记(C语言):线性表的单链表示的全部內容,希望文章能夠幫你解決所遇到的問題。

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