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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

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

發(fā)布時間:2025/4/16 编程问答 9 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构源码笔记(C语言):线性表的顺序表示 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
/* SeqList.c*/ /*線性表的順序表示:函數(shù)實現(xiàn)*/#include <stdio.h> #include <stdlib.h> //#include "SeqList.h"//#define MAXNUM 100 typedef int DataType;typedef struct SeqList {int MAXNUM;int n;int *element; } PSeqList;PSeqList *createNullList_seq(DataType m) {/* 創(chuàng)建新的順序表 */PSeqList *palist = (PSeqList *)malloc(sizeof(struct SeqList));if (palist!=NULL){palist->element = (int*)malloc(sizeof(DataType)*m);if (palist->element){palist->MAXNUM=m;palist ->n = 0; /* 空表長度為0 */return (palist);}else free(palist);}printf("Out of space!!\n"); /* 存儲分配失敗 */return NULL; }int isNullList_seq( PSeqList *palist ) {/*判別palist所指順序表是否為空表。*/return ( palist->n == 0 ); }int locate_seq( PSeqList *palist,DataType x) {/*求x在palist所指順序表中的下標 */int q;for ( q=0; q<palist->n; q++) if(palist->element[q] == x) return (q);return (-1); }int insertPre_seq(PSeqList *palist,DataType p,DataType x)/* 在palist所指順序表中下標為p的元素之前插入元素x */{ int q;if ( palist->n >= palist-> MAXNUM ) { /* 溢出 */printf("Overflow!\n");return ( 0 );}if (isNullList_seq(palist)) { /*空順序表插入 */palist->element[0] = x; /* 插入元素x */palist->n = 1; /* 元素個數(shù)為1 */return ( 1 );}if (p<0 || p>palist->n ) { /* 不存在下標為p的元素 */printf("Not exist! \n"); return (0 );}for(q=palist->n - 1; q>=p; q--) /* 插入位置及之后的元素均后移一個位置 */palist->element[q+1] = palist->element[q];palist->element[p] = x; /* 插入元素x */palist->n = palist->n + 1; /* 元素個數(shù)加1 */return ( 1 ); }int insertPost_seq(PSeqList *palist, DataType p, DataType x) /* 在palist所指順序表中下標為p的元素之前插入元素x */ { int q;if ( palist->n >= palist-> MAXNUM ) { /* 溢出 */printf("Overflow!\n");return ( 0 );}if ( isNullList_seq(palist) ) { /*空順序表插入 */palist->element[0] = x; /* 插入元素x */palist->n = 1; /* 元素個數(shù)為1 */return ( 1 );}if (p<0 || p>palist->n ) { /* 不存在下標為p的元素 */printf("Not exist! \n"); return (0 );}for(q=palist->n - 1; q>p; q--) /* 插入位置及之后的元素均后移一個位置 */palist->element[q+1] = palist->element[q];palist->element[p] = x; /* 插入元素x */palist->n = palist->n + 1; /* 元素個數(shù)加1 */return ( 1 ); }int deleteP_seq( PSeqList *palist, int p ) /* 在palist所指順序表中刪除下標為p的元素 */ { int q;if ( p<0 || p>palist->n - 1 ) /* 不存在下標為p的元素 */{printf("Not exist!\n ");return (0);}for(q=p; q<palist->n-1; q++) /* 被刪除元素之后的元素均前移一個位置 */palist->element[q] = palist->element[q+1];palist->n = palist->n - 1; /* 元素個數(shù)減1 */return ( 1 ); }int deleteV_seq(PSeqList *palist,DataType q) {if(locate_seq(palist,q)!=-1);if(deleteP_seq(palist,q)) return 1;else return 0;return 0; }int main() {int i=0;PSeqList *palist;palist=createNullList_seq(60);insertPre_seq(palist,0,40);printf("%d",locate_seq( palist,40));if(!(isNullList_seq(palist))){for(i=0;i<40;i++) insertPre_seq(palist,0,39-i);}for(i=41;i<56;i++)insertPost_seq(palist, i, i);deleteP_seq(palist, 54 );deleteV_seq(palist,53);for(i=0;i<palist->n;i++)printf("%d\n",(palist->element[i]));printf("%d\n",locate_seq( palist,14));printf("%d\n",palist->n);return 0;}

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言描述)匯總:

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):英文單詞按字典序排序的基數(shù)排序

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):直接插入排序

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):直接選擇排序

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):置換-選擇算法

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):Huffman樹字符編碼

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):Josephus問題之順序表

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):Josephus問題之循環(huán)鏈接表

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):多項式合并

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):二叉樹之葉子結(jié)點旋轉(zhuǎn)銷毀

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):哈夫曼樹

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):集合的位向量表示

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):鏈接隊列

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):鏈接棧

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):線性表的單鏈表示

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):線性表的順序表示

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):棧的基本操作

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):中綴表達式

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):希爾插入排序

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):索引文件建立和查找

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):冒泡排序

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):快速排序

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):可變長度字符串的快速排序

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):基數(shù)排序

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):二路歸并排序

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):堆排序

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):二叉樹搜索樹Kruskal

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):二叉搜索樹Prim

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):最短路徑弗洛伊德算法

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):深度、廣度優(yōu)先生成樹

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):鄰接矩陣轉(zhuǎn)化鄰接表

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):統(tǒng)計字符串中出現(xiàn)的字符及其次數(shù)

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):順序查找

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):哈希表的相關(guān)運算算法

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):分塊法查找

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):二分查找

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):二叉樹遍歷

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):二叉平衡樹的相關(guān)操作算法

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):二叉排序樹的基本操作算法

數(shù)據(jù)結(jié)構(gòu)源碼筆記(C語言):B樹的相關(guān)運算算法

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。