1、单向有序链表的含义
单向有序链表可以解析为四个名词:
表:一组元素;
链表:表中的元素不是从前往后一个挨着一个,而是通过一个元素才能找到另一个元素;
单向:表中的元素只能从前往后访问;
有序:表中的元素按照一定的规则进行了排序。
2、数据结构定义
链的表示:虽然见过其它的方式,但C语言中,表示链的最好方式是指针;
元素:需要保存元素值,还要保存下一个元素的地址;
链表:由于单向链表是从前往后访问,所以链表可以认为就是一个指向元素的指针。
3、算法设计
插入元素:向链表中插入一个不存在的元素,如果已经存在,则给出提示;
删除元素:从链表中删除一个已有的元素,如果不存在,则给出提示;
显示链表:将链表内容显示出来;
4、代码实现
包含的头文件如下:
#include #include
数据结构定义的代码如下:
struct TElement{ int m_iData; struct TElement* m_pNextElement;};struct TElement* pLink = NULL;
定义了一个分配内存的函数,实现如下:
插入元素的函数实现如下:
删除元素的实现代码如下:
打印所有元素的函数实现如下:
main函数的代码:
int main(){ PrintLink(pLink); InsertElement(&pLink, 98); PrintLink(pLink); DeleteElement(&pLink, 34); PrintLink(pLink); InsertElement(&pLink, 38); InsertElement(&pLink, 78); InsertElement(&pLink, 55); InsertElement(&pLink, 55); PrintLink(pLink); DeleteElement(&pLink, 55); PrintLink(pLink);}
程序运行情况如下:
[ ][ 98 ]Cannot find the data.[ 98 ]Find repetitive element.[ 38 55 78 98 ][ 38 78 98 ]