我是靠谱客的博主 单身铃铛,最近开发中收集的这篇文章主要介绍C语言数据结构(二),基础的线性表,单链表,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

《C语言数据结构》严蔚敏,吴伟民版。

上章内容链接:https://blog.csdn.net/daqino1/article/details/88677202
下章内容链接:https://blog.csdn.net/daqino1/article/details/88813280

以下内容为基础的线性表,单链表。

线性表:N个数据元素的有限序列。

// 抽象线性表
ADT List {
	// 初始化线性表L
	InitList( &L );
	// 销毁线性表L
	DestroyList( &L );
	// 重置L表为空表
	ClearList( &L );
	// 判断L表是为空表 TRUE,空表;FALSE,非空表
	ListEmpty( &L );
	// L表中的数据元素个数
	ListLength( L );
	// 用e返回L表中第i个数据元素的值
	GetElem( L, i, &e);
	/* 返回L中第1个与e满足关系compare()对数据元素的位序。若这样的数据元素不存在,返回值为0*/
	LocateElem( L, e, compare() );
	/*若cur_e是L的数据元素,且不是第一个,则用per_e返回它的前驱,否则操作失败,pre_e无定义*/
	PriorElem( L, cur_e, &pre_e);
	/*若cur_e是L的数据元素,且不是最后一个,则用next_e返回它的后继,否则操作失败,next_e无定义*/
	NextElem( L, cur_e, &next_e);
	// 在L中第i个位置之前插入新的数据元素e,L的长度加1
	ListInsert( &L, i, e);
	// 删除L中第i个数据元素,并用e返回其值,L的长度减1
	ListDelete( &L, i, &e);
	// 依次对L的每个数据元素调用函数visit(). 一旦visit()失败,则操作失败
	ListTraverse( L, visit() );
} ADT List

A=AUB的算法:算法2.1

void union(List &La, List &Lb) {
	// 将所有在线性表Lb中,但不在La中的数据元素插入到La中
	// 求线性表的长度
	La_len = ListLength(La);
	Lb_len = ListLength(Lb);
	for (i = 1; i <= Lb_len; i++) {
		// 取出Lb中第i个数据元素赋给e
		GetElem(Lb, i, e);
		if (!LocateElem(La, e, equal)) {
			// La中不存在和e相同的数据元素,插入。
			ListInsert(La, ++La_len, e);
		}
	}
}

集合A和B,非递减有序排列到集合C,算法2.2

void MergeList(

最后

以上就是单身铃铛为你收集整理的C语言数据结构(二),基础的线性表,单链表的全部内容,希望文章能够帮你解决C语言数据结构(二),基础的线性表,单链表所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部