数据结构基本操作函数功能

一:线性表及其存储

操作集合如下。
(1 ) void init (sequence list *slt)顺序表的初始化-

(2) void append (sequence_ list *slt,datatype x) 在顺序表后部插人值为x的结点。
(3) void display (sequence_ list slt)打印顺序 表的各结点值。

(4) int empty (sequence_ list slt). 判断顺序表是否为空。

(5) int find (sequence_ list slt, datatype x)查找顺序表中值为 x的结点位置。

(6) int get (sequence_ list slt,int i)) 取得顺序表中第i个结点的值。

(7) void insert(sequence_ list *slt, int position, datatype x)在顺序表的position位置插入值为x的结点。

(8) void dele (sequence_ list *slt,int position) 删除表中第position位置的结点。

二:线性表的链式存储

操作集合如下。
(1)node *init( )建立一个空的单链表。

(2 ) void display (node *head) 输出单链表中各个结点的值。

(3) node *find (node *head, int i) 在单链表中查找第i个结点。

(4) node *insert (node *head, datatype x, int i)在单链表中第i个结点后插人-一个值为x的新结点。

(5) node *dele (node *head, datatype x)在单链表中删除一个值为 x的结点。

三:字符串、数组和特殊矩阵

(1) strereate(s) :初始化字符串操作,该操作产生一个新的字符申放人字符申变量 s中。

(2)stressign(S,T) :字符串赋值操作,其中:和均为字符串变量,该函数的功能是将字符申变量T中存放的值赋给S。

(3) strlength(S) :求变量S中存放的字符串的长度。

(4) strempty(S) :判断变量s中存放的字符申是否为空串,若是返回1,否则返回0。

(5) strclear(s) :若字符串s已存在,则该操作将它清空)

(6)strcompare(S.S2) :比较两个字符串St和S;的大小。若S.>S,则返回1:著5-5,则返回0;否则返回-1。

(7)strconcat(S, S2) :字符串的连接操作,它将S,史存放的字符用连接到s中存放的字符审的后面构成一个新串返回。

(8 )substring (S, i, len) :该操作的功能为求s的子串,它表示在字符串s中,从第i个字符开始取len个连续字符构成一个子串返 回。

index(P, T)字符串P在字符电T中首次出现的起始位置。

(10) strinsert(s,i, T) :字符串的插人运算,表示将字符申口插入到字符串S的第↓个字符之前。(11) strdelete (s, i, len) :字符用的删除运算,表示将字符串5中第个字符开始长度为Len的子串删除>(12) replace(s,T, T2):表示在宇符串s中用工替换n的所有出现。

(13) strdestroy(S) :字符串销毁运算。若字符串S存在,执行strdestroy运算后,S被销毁,空间被回收。

四:树形结构

树的基本操作如下。初始化-棵树T。

(1) inittree(T)若树了已存在,则将它置空,,使之成为-棵空树。

(2)cleartree(T)判断根已存在的树:是否是空树,若是返回1;否则返回0。

(3) emptytree (T)返回树T的根结点。

(4) root(T)返回T的根节点

(5) child(T,a,i)返回树T中结点a的第i个子女。

(6) parent(T,a)返回树T中结点a的双亲。

(7) degree (T,a)返回树T中结点a的度数。

(8) depth (T)返回树T的高度(深度)。

(9) choose(T, C)返回树T中满足条件C的某一个结点。

(10 ) addchild(T,a,i,t1)表示在树T中将树t1作为结点a的第i棵子树插人。

(11 ) delchild(T,a,i)若树T中结点a的第i棵子树存在,则删除它。

(12) createtree(a,F)构造棵新树, 该树以a为根结点、 以森林F中的树为子树。

(13) equaltree(T1,T2)判断两棵树T1和T2是否相等,若相等,返回1;否则返回0。

(14) numofnode (T)返回树T中所含结点的个数。

(15) preorder (T)输出树T前序遍历的结果。

(16) postorder (T)输出树T后序遍历的结果。

(17) levelorder (T)输出树T层次遍历的结果。

(18 ) destroytree (T)4销毁一棵已存在的树下,将它的空间回收。

五:二叉树

二叉树的基本操作如下。

(1 ) createbitree (t)创建一棵新的二叉树t。

(2) destroybitree(t)销毁-棵已存在的二叉树to

(3) root(t)返回二叉树t的根结点。

(4) leftchild(t)返回二叉树t的左子树。

(5) rightchild(t)返回二叉树t的右子树。

(6) locate(t, x)返回二叉树t中值为x的结点的位置。

(7) parent(t,x)返回二叉树t中结点x的双亲结点的位置。

(8) isempty(t)判断二叉树七是否为空二叉树。

(9) depth(t)返回二叉树t的深度。

( 10 ) numofnode (t)返回二叉树t中所含结点的个数。

(11 ) addchild(t,x,t1, b)若b=0,则将以t1为根的二叉树作为二叉树t中结点x的左子树插入;若b=1,则将以t1为根的二叉树作为二叉树t中结点x的右子树插入。

(12) deletechild(t,x,b)若b=0,则删除二叉树t中结点x的左子树;若b=1,则删除二叉树t中结点x的右子树。

(13) setnull (t)置t为空的二叉树。

(14) isequal (t1,t2)判断两棵二叉树t1和七2是否等价。

(15 )preorder (t)输出二叉树前序遍历的结果。

(16) inorder(t)输出二叉树中序遍历的结果。

(17) postorder(t)输出二叉树后序遍历的结果。

(18) transforml(F, t)将森林F转换成其对应的二叉树t。

(19) transform2(t,F)将一棵二叉树t转换成其对应的森林F。

六: 图

图的基本操作如下。

(1 ) Creat (n)创建一一个具有n个顶点,没有边的图。

(2) Exist(i,j)如果存在边(i,j)则返回1,否则返回0。

(3) Edges()返回图中边的数目。

( 4) Vertices ()返回图中顶点的数目。

(5) Add(i,j)向图中添加边(i,j )。

( 6) Delete(i,j)删除边(i,j )。

(7) Degree (i)返回顶点i的度。

( 8) InDegree (i)返回顶点i的入度。

( 9) OutDegree (i)返回顶点i的出度。

  • 1
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值