一:线性表及其存储
操作集合如下。
(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的出度。