#include <stdio.h>
#include <stdlib.h>
typedef int DataType
;typedef struct SeqList
{int MAXNUM
;int n
;int *element
;
} PSeqList
;PSeqList
*createNullList_seq(DataType m
)
{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; return (palist
);}else free(palist
);}printf("Out of space!!\n"); return NULL;
}int isNullList_seq( PSeqList
*palist
)
{return ( palist
->n
== 0 );
}int locate_seq( PSeqList
*palist
,DataType x
)
{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
){ int q
;if ( palist
->n
>= palist
-> MAXNUM
) { printf("Overflow!\n");return ( 0 );}if (isNullList_seq(palist
)) { palist
->element
[0] = x
; palist
->n
= 1; return ( 1 );}if (p
<0 || p
>palist
->n
) { 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
; palist
->n
= palist
->n
+ 1; return ( 1 );
}int insertPost_seq(PSeqList
*palist
, DataType p
, DataType x
)
{ int q
;if ( palist
->n
>= palist
-> MAXNUM
) { printf("Overflow!\n");return ( 0 );}if ( isNullList_seq(palist
) ) { palist
->element
[0] = x
; palist
->n
= 1; return ( 1 );}if (p
<0 || p
>palist
->n
) { 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
; palist
->n
= palist
->n
+ 1; return ( 1 );
}int deleteP_seq( PSeqList
*palist
, int p
)
{ int q
;if ( p
<0 || p
>palist
->n
- 1 ) {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; 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)容還不錯,歡迎將生活随笔推薦給好友。