生活随笔
收集整理的這篇文章主要介紹了
数据结构源码笔记(C语言):线性表的单链表示
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include <stdio.h>
#include <stdlib.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
)
{
return (llist
->link
== NULL);
}PNode
locate_link(LinkList llist
, DataType 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
)
{
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
)
{
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
)
{ PNode p
, q
; p
= llist
;if(p
==NULL) return(0);while( p
->link
!= NULL && p
->link
->info
!= x
)p
= p
->link
; if( p
->link
== NULL ){ printf("Not exist!\n "); return(0);}else{q
= p
->link
; p
->link
= q
->link
; free( q
); return(1); }
}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语言):线性表的单链表示的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。