您好、欢迎来到现金彩票网!
当前位置:双彩网 > 向量数据结构 >

数据结构作业

发布时间:2019-05-27 07:13 来源:未知 编辑:admin

  假设有2哥按元素递增有序排列的线性表A和B,均以单链表1作储存结构,试编写算法A表和B表归成一个按元素值递减有序(既非递增有序,允许值相同)排列的线性表C,并要求利用原表(即A表和B表)的结点空间存放表C

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部试描述头指针、头结点、开始结点的区别,并说明头指针和头结点的作用。

  头指针:存放链表首地址的指针变量。头结点:链表的开始结点之前的一个同类型结点。开始结点:链表的第一个元素所在的结点。

  头指针的作用:用于确定链表的地址。头结点的作用:方便于处理开始结点的操作和处理其它结点的操作保持一致,也方便于处理空表的操作和处理非空表的操作保持一致。

  2.2 有哪些链表可由一个尾指针来唯一确定?即从尾指针出发能访问链表上任何一个结点。

  ★2.3 设线性表存放在向量A[arrsize]的前elenum个分量中,且递增有序。试写一算法,将x插入到线性表的适当位置上,以保持线性表的有序性。并且分析算法的时间复杂度。

  } //本题也可以先进行比较,比较的结果就是找到了插入的合适位置,然后再完成插入操作。但这样做比较耗时。

  ★2.4 用向量作存储结构,试设计一个算法,仅用一个辅助结点,实现将线性表中的结点循环右移k位的运算,并且分析算法的时间复杂度。

  ★2.5 已知带头结点的动态单链表L中的结点是按整数值递增排列的,试写一算法将值为x的结点插入表L中,使L仍然有序。

  } //用指针q遍历结点,指针p跟随指针q,使用头插法把当前结点*p插入到修改之后的单链表中。

  2.7 试编写在带头结点的动态单链表和静态单链表上实现线性表操作Length(L)的算法,并将长度写入头结点的数据域中。

  L-data=i; //按照题目要求,将表长写入头结点的数据域中。

  2.8 假设有两个按元素值递增有序排列的线性表A和B,均以单链表①作存储结构,试编写算法将A表和B表归并成一个按元素值递减有序(即非递增有序,允许值相同)排列的线性表C,并要求利用原表(即A表和B表)的结点空间存放表C。①今后若不特别指明,链表均是指动态链表,且可以带头结点。

  if(!p) //如果链表A中所有结点都链接到链表C中后,链表B中还有结点,

  while(q) //将链表B中剩余的未比较过的结点全部按照头插法插入到链表C中

  else //如果链表B中所有结点都链接到链表C中后,链表A中还有结点,

  while(p) //将链表A中剩余的未比较过的结点全部按照头插法插入到链表C中

  2.9 假设在长度大于1的单循环链表中,既无头结点也无头指针。s为指向链表中某个结点的指针,试编写算法删除结点*s的直接前趋结点。

  2.10 已知,由单链表表示的线性表中,含有三类字符的数据元素(如:字母字符、数字字符和其它字符),试编写算法构造三个以循环链表表示的线性表,使每个表中只含同一类的字符,且利用原表中的结点空间作为这三个表的结点空间,头结点可另辟空间。

  //L为等待分解的单链表,最后得到的包含字母字符的链表的首地址作为该函数的返回值被返回,得到的包含数字字符的链表的首地址被参数*LB带回,得到的包含其它字符的链表的首地址被参数*LC带回。

  while(p) //只要p不为空,就意味着原单链表L中仍然有未处理的结点

  2.11 设有一个双链表,每个结点中除有prior、data和next三个域外,还有一个访问频度域freq,在链表被起用之前,其值均初始化为零。每当在链表进行一次Locate(L,x)运算时,令元素值为x的结点中freq域的值增1,并使此链表中结点保持按访问频度递减的顺序排列,以便使频繁访问的结点总是靠近表头。试编写实现符合上述要求的Locate运算的算法。

  q=p-prior; //指针q用于查找在*p的前面结点中第一个freq域不小于当前p所指结点的freq域的结点

http://bluecaleel.com/xiangliangshujujiegou/34.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有