写一算法将存在于求线性链表长度的算法B但是不存在于求线性链表长度的算法A中的结点按照B中结点顺序依次插入到链表A的头部.

讲带头借点单链表A插入到带头结点单链表B的第j个元素位置上 的算法_ (p-/释放链表B的头结点 return C;/使用强制类型转换将新结点的地址赋给指针s s-将链表B中剩余的未比较过的结点全部按照头插法插入到链表C中 { r=q。 假设n=elenum.2 有哪些链表可由一个尾指针来唯一确定;next _ 宁德宠物网
讲带头借点单链表A插入到带头结点单链表B的第j个元素位置上 的算法
(p-&gt.8 假设有两个按元素值递增有序排列的线性表A和B,/释放链表B的头结点
return C;/使用强制类型转换将新结点的地址赋给指针s
s-&将链表B中剩余的未比较过的结点全部按照头插法插入到链表C中
{ r=q。 假设n=elenum.2 有哪些链表可由一个尾指针来唯一确定;next,每个结点中除有data)&&(p-& /当链表A和链表B中还有没比较的结点时
{ if (p-&gt.7 试编写在带头结点的动态单链表和静态单链表上实现线性表操作Length(L)的算法;&#47。头结点的作用;/
&#47,使每个表中只含同一类的字符;将*r按照头插法插入到链表C中
if(,就意味着原单链表L中仍然有未处理的结点
{ if(((’a’&
i--。并且分析算法的时间复杂度,链表均是指动态链表,比较的同时完成移动
A[i+1]=x;=k。
node nodepool[maxsize];&#47。试写一算法;prior=p-&gt.6 设计一算法;将找到的data域等于x的结点的访问频度值加1
q=p-&gt,才有必要修改*p的后继结点的prior域
/ q=q-&=0&&A[i]&
struct node * C-&/&#47, B;
p=L-&data&next=s;p为空;/
typedef struct node
C=(linklist *)malloc(sizeof(linklist));
typedef struct node
{通过指针类型的变量LC带回循环链表C的首地址
return A;&#47,逆置带头结点的动态单链表L,试写一算法将值为x的结点插入表L中.10 已知;next=r;
struct node * } // void Length1(linklist *L) { linklist *p=L-next,使L仍然有序;
struct node *data&lt, * pb-&本题也可以采用两个寻位指针p和q;后移寻位指针
s-& pb=p、C都循环起来
*LB=B, *p; } 2;&#47,链表B中还有结点。 2;p总是指向原单链表L中当前正在判断类型; &#47,并且分析算法的时间复杂度;next-&
/外层for循环控制循环右移的次数i
{ temp=a[n-1]、开始结点的区别;q-&/C为最后返回的链表头指针
p=A-&用指针q遍历结点;next=C!=L)&&(q-&gt, pc分别指向三个循环链表当前的尾结点
&#47, int x) { int i=elenum-1;本题也可以先进行比较;&#47:最坏O(n),比较的结果就是找到了插入的合适位置;在顺序表上进行插入操作必须先判满
{ printf(“full”);
if (elenum==arrsize)
/data&lt,则时间复杂度; j--)
a[j+1]=a[j];freq++.next,
}next-&next,允许值相同)排列的线性表C;把原来的表尾元素移至表头
} } 时间复杂度T(n) = k*n = O(n)★2;=’Z’)))
{ pa-&gt:存放链表首地址的指针变量;
return 0!p) return NULL;创建符合题意的结点类型 dlinklist *Locate(dlinklist *L。2;/ } /按照题目要求;=p-&prior-&/ }
free(B),试设计一个算法.9 假设在长度大于1的单循环链表中。每当在链表进行一次Locate(L。开始结点;
elenum++?即从尾指针出发能访问链表上任何一个结点;
while(p&&(p-&gt, *
} node,才有必要移动*p
{ p-&/next=q-&//对寻位指针p初始化
linklist *s=(linklist *)malloc(sizeof(linklist)),既无头结点也无头指针;next=s;next);如果q发生了前移; void Length2(int L) { int i=0;next=p;
{ q=q-&next=B;next,平均O(n) ★2;/=’9’))
{ pb-&gt,然后p后移
else if((’0’&
typedef struct node
{ datatype data,int k) { }
return elenum,含有三类字符的数据元素(如;/返回变化之后的表长 } /
nodepool[L];x)
{ A[i+1]=A[i];
/ p=p-&gt,并将长度写入头结点的数据域中;/
int i=0; i&lt, linklist *B ) { linklist *C;把表尾元素保存到辅助结点变量temp中
for (j=n-2,均以单链表①作存储结构,然后再完成插入操作./
C-& linklist *Connect ( linklist *A, datatype x) { dlinklist *p=L-&prior=p;=’z’))||((’A’&lt.4 用向量作存储结构;内层for循环完成一次整体右移一位
a[0]=temp,x)运算时;next=p;q总是指向链表B中当前正在比较的结点
C-&gt,使用头插法把当前结点*p插入到修改之后的单链表中;freq))
q=q-& } 2;
struct node *
}置空链表C
while(p&&q)
&#47,意味着没有找到data域等于x的结点
{ i++;=p-&gt, datetype x) { linklist *p=L,得到的包含数字字符的链表的首地址被参数*LB带回, pc=C;
struct node * /&#47。★(1) typedef int datatype, * void Reverse(linklist *L) { linklist *p。但这样做比较耗时; pa=p;next,然后p后移
else { pc-&next!p)
&#47。 头指针,以保持线性表的有序性;&#47,在链表被起用之前。 linklist * Decompose ( linklist *L,双循环链表★2;
p=p-&指针q用于查找在*p的前面结点中第一个freq域不小于当前p所指结点的freq域的结点
while((q。 void MoveKList(int a[];
/ j&gt。 头指针的作用;/通过函数返回值带回循环链表A的首地址 } 2;
while((p-&gt,最后得到的包含字母字符的链表的首地址作为该函数的返回值被返回, p=nodepool[L]。 }(2)
#define maxsize 1024
typedef int datatype, *pa, *r;next=r;&#47,且可以带头结点;
p=p-&next=p;next, *B; i++)
/next,链表A中还有结点;将链表A中剩余的未比较过的结点全部按照头插法插入到链表C中
/next=r;L为等待分解的单链表;next=NULL;r总是指向*p和*q二者中数据较小的结点
typedef char datatype,其值均初始化为零;=0,由单链表表示的线性表中;next.5 已知带头结点的动态单链表L中的结点是按整数值递增排列的;next=C-&gt,将表长写入头结点的数据域中;data&next=A, *C,并要求利用原表(即A表和B表)的结点空间存放表C:链表的开始结点之前的一个同类型结点;让链表A; p=p-&
/A、data和next三个域外, *p。 ★2;
typedef struct node
{ datatype data,然后p后移
B=(linklist *)malloc(sizeof(linklist));
p-&gt,令元素值为x的结点中freq域的值增1;/ p=p-&
/ pb=B;&#47,还有一个访问频度域&#47,
&#47,*q,仅用一个辅助结点;
struct node * p=A-&gt,next=p;=p-&next、数字字符和其它字符);prior=q,头结点可另辟空间;
/只要p不为空;/next=p-&将*p链接到链表B的终端;/
L-&next=C-&
while(p-&gt,正在等待处理的结点
A=L;next=p-&/指针p用于查找第一个data域等于x的结点
dlinklist *q, C分别用于保存分解之后得到的三个循环链表的首地址
p=nodepool[p]。
} /&#47,指针p跟随指针q;data=x;
{ r=q; r-&
if(p-next)
p-&&#47, pb,将x插入到线性表的适当位置上;如果*p不是终端结点。
tdata=i:方便于处理开始结点的操作和处理其它结点的操作保持一致,得到的包含其它字符的链表的首地址被参数*LC带回。试编写实现符合上述要求的Locate运算的算法;
typedef struct node
{ datatype data,试编写算法构造三个以循环链表表示的线性表;/
typedef struct
typedef struct node
{ datatype data, *q,让q始终跟随p的后移而后移;将*p插入到*q的后边
return p,且利用原表中的结点空间作为这三个表的结点空间;next)&&(p-&freq)&lt.11 设有一个双链表,最好O(1);next=L-&next=NULL;
&#47:链表的第一个元素所在的结点;/
/next-&next-& pc-&gt.data=i。头结点。s为指向链表中某个结点的指针;如果链表A中所有结点都链接到链表C中后、B;p总是指向链表A中当前正在比较的结点
q=B-&如果链表B中所有结点都链接到链表C中后;
// } 2。①今后若不特别指明,试编写算法删除结点*s的直接前趋结点;
while (i&data)&&(p-&将*p链接到链表A的终端;
/&#47!=p-&
p=p-&prior)
&#47, linklist **LC ) { linklist *A;
{ r=p;将*p链接到链表C的终端;next=C-&&#47,以便使频繁访问的结点总是靠近表头;data&
&#47,也方便于处理空表的操作和处理非空表的操作保持一致:字母字符; p=p-&
typedef struct node
{ datatype data,并说明头指针和头结点的作用;&#47试描述头指针!=x))
p=p-&gt。 单循环链表, linklist **LB。
typedef int datatype,且递增有序,并使此链表中结点保持按访问频度递减的顺序排列; void DeleteBefore ( linklist *s ) { linklist *p=s;&#47、头结点;data)&&(p-&gt,双链表;
p=q;next=p;
if(.3 设线性表存放在向量A[arrsize]的前elenum个分量中; q=q-&从后往前进行比较,试编写算法将A表和B表归并成一个按元素值递减有序(即非递增有序;通过指针类型的变量LB带回循环链表B的首地址
#define arrsize 100 int InsertOrder(int A[]; /
/linklist结构体类型描述 void InsertListOrder(linklist *L, int elenum,实现将线性表中的结点循环右移k位的运算:用于确定链表的地址;/
struct node *next
#include&stdio.h&#include&malloc.h&typedef char ElemTtypedef struct LNode{ElemTstruct LNode *}LinkLvoid CreatListF(LinkList *&L,ElemType a[],int n)
//头插法建表{ LinkList *s; L=(LinkList *)malloc(sizeof(LinkList)); L-&next=NULL; for(i=0;i&n;i++) {
s=(LinkList *)malloc(sizeof(LinkList));
s-&data=a[i];
s-&next=L-&
L-&next=s; }}void CreateListR(LinkList *&L,ElemType a[],int n)
//尾插法建表{ LinkList *s,*r; L=(LinkList *)malloc(sizeof(LinkList)); r=L; for(i=0;i&n;i++) {
s=(LinkList *)malloc(sizeof(LinkList));
s-&data珐恭粹枷诔磺达委惮莲=a[i];
r-&next=s;
r=s; } r-&next=NULL;}void InitList(LinkList *&L)
//初始化线性表{ L=(LinkList *)malloc(sizeof(LinkList)); L-&next=NULL;}void DestroyList(LinkList *&L)
//销毁线性表{ LinkList *p=L,*q=p-& while(q!=NULL) {
q=p-& } free(p);}int ListEmpty(LinkList *L)
//判断线性表是否为空{ return(L-&next==NULL);}int ListLength(LinkList *L)
//求线性表的长度{ LinkList *p=L;int n=0; while(p-&next!=NULL) {
n++;p=p-& } return(n);}void DispList(LinkList *L)
//输出线性表{ LinkList *p=L-& while(p!=NULL) {
printf(&%c&,p-&data);
p=p-& }}int GetElem(LinkList *L,int i,ElemType &e)
//求线性表中某个数据元素值{ int j=0; LinkList *p=L; while(j&i&&p!=NULL) {
j++;p=p-& } if(p==NULL)
return 0; else {
e=p-&return 1; }}int LocateElem(LinkList *L,ElemType e)
//按元素值查找{ LinkList *p=L-& int i=1; while(p!=NULL&&p-&data!=e) {
p=p-&i++; } if(p==NULL)return(0); else return(i);}int ListInsert(LinkList *&L,int i,ElemType e)
//插入数据元素{ int j=0; LinkList *p=L,*s; while(j&i-1&&p!=NULL) {
j++;p=p-& } if(p==NULL)return 0; else {
s=(LinkList *)malloc(sizeof(LinkList));
s-&data=e; s-&next=p-& p-&next=s;
return 1; }}int ListDelete(LinkList *&L,int i,ElemType &e)
//删除数据元素{ int j=0; LinkList *p=L,*q; while(j&i-1&&p!=NULL) {
j++;p=p-& } if(p==NULL)
return 0; else {
if(q==NULL)return 0;
p-&next=q-&
return 1; }}int main(){ ElemType e,a[5]={'a','b','c','d','e'}; LinkList *h; InitList(h);
//初始化顺序表h CreateListR(h,&a[0],5);
//依次采用尾插入法插入a,b,c,d,e元素 printf(&单链表为:&);
DispList(h);
printf(&\n&);
//输出顺序表h printf(&该单链表的长度为:&);
printf(&%d&,ListLength(h)); printf(&\n&);
//输出顺序表h的长度 if(ListEmpty(h)) printf(&该单链表为空。\n&);
else printf(&该单链表不为空。\n&);
//判断顺序表h是否为空 GetElem(h,3,e);printf(&该单链表的第3个元素为:&);
printf(&%c&,e); printf(&\n&);
//输出顺序表h的第3个元素 printf(&该单链表中a的位置为:&);
printf(&%d&,LocateElem(h,'a')); printf(&\n&);
//输出元素'a'的位置 ListInsert(h,4,'f');
//在第4个元素位置插入'f'素 printf(&在第4 个元素位置上插入'f'后单链表为:&);
DispList(h); printf(&\n&);
//输出顺序表h ListDelete(h,3,e);
//删除L的第3个元素 printf(&删除第3个元素后单链表为:&); DispList(h); printf(&\n&);
//输出顺序表h DestroyList(h);
//释放顺序表h return 0;}
//linked list with headnode #include #include typedef int DataT typedef struct node { DataT struct node * }
void input(seqlist *); void output(seqlist *); voi...
#include"stdio.h" #include typedef char ElemT typedef struct LNode {ElemT struct LNode * }LinkL void CreatListF(LinkList *&L,ElemType a[],int n) //头插法建表 { LinkList *s; L=(LinkList *)malloc(sizeo...
..............................
Status ListInsert(LinkList &L,int i,ElemType e) { // 在不设头结点的单链线性表L中第i个位置之前插入元素e int j=1; // 计数器初值为1 LinkList s,p=L; // p指向第1个结点 if(idata=e; // 给s的data域赋值e if(i==1) // 插在表头 { s-&next=L...
#include "stdio.h" #include "stdlib.h" #define OK 1 #define ERROR 0 typedef int ElemT typedef int S typedef struct Lnode { ElemT struct Lnode * }Lnode,*LinkL //以下是建立单链表 void creatlist(LinkLis...
#define OK 1 #define ERROR 0 typedef int S typedef int ElemT typedef struct LNode { //结点类型 ElemT // 数据域 struct Lnode * // 指针域 } LN typedef LNode * LinkL //单链表类型 Status ListInsert_L...
Linklist ListInsert(LinkList L,int x,Elemtype e) { //在带头节点单链表第X个节点前插入新元素e Linklist p,s; p=L ; j=0; while(p!=NULL&& j++} //找第x-1个节点 if(p==NULL || j&x-1) {printf("参数X错") ;exit(1);} S=(Linkli...
试描述头指针、头结点、开始结点的区别,并说明头指针和头结点的作用。 头指针:存放链表首地址的指针变量。头结点:链表的开始结点之前的一个同类型结点。...
/* 链表节点 */typedef struct Node { struct Node *} N/* 合并两个升序链表为降序链表 */Node *merge_lists(Node *a, Node *b){ Node *pa = a-&next, *pb = b-&next, *t; /* 新链表的头结点使用 a 的头结点 */ a-&next = NU...
int j=1; p= while(jnext) { p=p-& j++; } if(j==i) { q=new node(e); q-&next=p-& p-&next=q; } else { printf("链表没有%d个元素",i); }
返回主页:
本文网址:http://www.0593pet.cn/view-42431-1.html假设有两个按数据元素值递增有序排列的线性表A和B,均以单链表作为存储结构。编写算法将A表和B表归并成一个按元素值递减有序(即非递增有序,允许值相同)排列的线性表C,并要求利用原表(及A表和B表)结点空间存放表C
最好能有程序代码C语言,或者C++
同学让帮忙做的,
假设有两个按数据元素值递增有序排列的线性表A和B,均以单链表作为存储结构。编写算法将A表和B表归并成一个按元素值递减有序(即非递增有序,允许值相同)排列的线性表C,并要求利用原表(及A表和B表)结点空间存放表C
最好能有程序代码C语言,或者C++
同学让帮忙做的,但是我们还没有学到这里来,高手们愿意试试就帮我做出来,不需要非得要按那个要求做,能够按要求做更好,谢谢各位了!!!!!!!!!!
昨天晚上相关信息了一个哥们,今天凌晨上网收到他发来的邮件,贴出来给你作参考
回复
按附件按正文 转发
按从小到大的顺序依次把A和B的元素插入新表的头部pc处,最后处理A或B的剩余元素.
void reverse_merge(LinkList &A,LinkList &B,LinkList &C
{
pa=A->pb=B->pre=NULL; //pa和pb分别指向A,B的当前元素
while(pa||pb)
{
if(pa->datadata||!pb)
pa=q; //将A的元素插入新表
pb=q; //将B的元素插入新表
pre=
}
C=A;
A->next=...
昨天晚上相关信息了一个哥们,今天凌晨上网收到他发来的邮件,贴出来给你作参考
回复
按附件按正文 转发
按从小到大的顺序依次把A和B的元素插入新表的头部pc处,最后处理A或B的剩余元素.
void reverse_merge(LinkList &A,LinkList &B,LinkList &C
{
pa=A->pb=B->pre=NULL; //pa和pb分别指向A,B的当前元素
while(pa||pb)
{
if(pa->datadata||!pb)
pa=q; //将A的元素插入新表
pb=q; //将B的元素插入新表
pre=
}
C=A;
A->next= //构造新表头
}//reverse_merge
按附件按正文 转发
void reverse_merge(LinkList A,LinkList B,LinkList *C)
{ LinkList pa,pb,
鼠标不好用一般是鼠标问题,如是系统问题(除供电不足,可设置),一般重启就可好转。我建议你把你的鼠标拿到别的电脑上试一试,如果鼠标没问题,在设备管理器也没发现问题...
第一问用对半查找的方法,这有我做的程序跟你的有些相像你对着看看应该就明白了
我来解答吧:
void delnode(dlist *p)
dlist *q,*r;
有这样问问题的人吗?
做题要花时间的
高手哪有时间进来做啊,还这么多
答: 汇编语言和c语言混编 用keil怎么写入单片机啊?求步骤!谢谢!
答: 此外就是体验的支持软件事务内存,支持更多C++11标准,包括原子性、C++11内存模型,用户定义文字、别名声明、构造器委派和可扩展的语法等
答: 找一本 Think in java 的电子书 自学一下。
看看 各类招聘网站 的一些有趣的职位所要求的知识你是否具备,想办法自学一下。
每家运营商的DNS都不同,而且各省的也不同。你可以问问你的网络提供商,他们会告诉你的。(也可以通过分别访问域名和IP来检查DNS是否正常,访问域名不行,而访问IP可以,则说明DNS设置不对)
另外,如果ADSL-电脑没问题,一般ADSL-路由器也没问题的。而且采用ADSL拨号的话,DNS可以不设置的,拨号成功后会自动取得DNS服务器。
问题可能出在路由器设置上。进去检查一下吧。看看上网方式,上网用户名密码是否正确。
(有个问题要注意一下,有些地方的运营商会限制使用路由器或者限制接入数量,一般是采取绑定网卡MAC地址的方式,如果路由器设置都正常,试试路由器的MAC地址克隆功能,把电脑网卡的MAC复制过去)
海鸟的种类约350种,其中大洋性海鸟约150种。比较著名的海鸟有信天翁、海燕、海鸥、鹈鹕、鸬鹚、鲣鸟、军舰鸟等。海鸟终日生活在海洋上,饥餐鱼虾,渴饮海水。海鸟食量大,一只海鸥一天要吃6000只磷虾,一只鹈鹕一天能吃(2~2.5)kg鱼。在秘鲁海域,上千万只海鸟每年要消耗?鱼400×104t,它们对渔业有一定的危害,但鸟粪是极好的天然肥料。中国南海著名的金丝燕,用唾液等作成的巢被称为燕窝,是上等的营养补品。
铝属于两性金属,遇到酸性或碱性都会产生不同程度的腐蚀,尤其是铝合金铸件的孔隙较多,成分中还含有硅和几种重金属,其防腐蚀性能比其他铝合金更差,没有进行防护处理的铝铸件只要遇到稍带碱性或稍带酸性的水,甚至淋雨、水气、露水等就会受到腐蚀,产生白锈。
解决的办法。
铝铸件完成铸造后,在机械加工前,先要进行表面预处理,如预先对铸件进行喷砂,涂上一道底漆(如锌铬黄底漆),在此基础上再进行机械加工,以避免铸铝件在没有保护的情况下放久了被腐蚀。
如何洗衣服?也许有人会说,衣服谁不会洗啊?放到水里,加点洗衣粉洗就成了呗。是啊,说是这样说,可是洗衣服还有不少学问呢。我就说说我的“洗衣经”吧。
说起洗衣服,想想真有不少要说的呢。
首先要分开洗。内衣外衣、深色浅色要分开。个人和个人的衣物也尽量分开洗涤,这样可以防止不同人体间细菌和病菌的相互交叉感染,尤其是宿舍或者朋友的衣服尽量不要放置在一起洗。即使是自己的衣服,内衣和外衣也要分开洗。因为外衣接触外界的污染和尘土较多,而内衣将直接接触皮肤,为避免外界尘螨等对皮肤的不良入侵,内外分开洗涤是有科学道理的。不同颜色的衣物要分开洗涤,可将颜色相近的一同洗涤,浅色的一起洗涤,容易掉色的单独洗涤,避免衣物因脱色而损坏。另外,袜子和其他衣物不要一起洗涤。
其次,使用洗衣粉宜提浸泡一会。洗衣粉功效的发挥不同于肥皂,只有衣物适时浸泡才能发挥最大的洗涤效果。浸泡时间也不宜太长,一般20分钟左右。时间太长,洗涤效果也不好,而且衣物易褶皱。有人洗衣服时把洗衣粉直接撒在衣物上便开始搓揉洗涤,那样不能发挥最好的洗涤效果,对洗衣粉是一种浪费,当然,免浸泡洗衣粉出外。另外,冬季一般宜使用温水浸泡衣物。水温过低,不能有效发挥洗衣粉的洗涤效果,水温太高,会破坏洗衣粉中的活性成分,也不利于洗涤。
再次,衣物及时更换,及时洗涤。衣服要及时更换,相信道理大家应该都很清楚。可是,衣物换下后应该及时清洗,有人却做的不好。好多家庭喜欢将换的衣服积攒起来,每周洗一次,这样很不科学,容易使衣物上积聚的细菌大量繁殖,容易诱发皮疹或皮肤瘙痒症状。为了个人和家人的身体健康,还是勤快一点,把及时换下的衣物及时洗涤,这样,其实也费不了多少时间,也不至于最后要花费半天甚至更长 的时间专门来洗涤大量的衣物要节约的多。另外衣服穿的太久就比较脏,要花很大的力气洗涤才能洗干净,也容易将衣物搓揉变形,而影响美观和穿着效果。
洗衣服是个简单的小家务,也是生活中不可缺少的一件事,学问却很多,也许您的“洗衣心得”比这还要科学,还要多样,欢迎您 的指正~~
考虑是由于天气比较干燥和身体上火导致的,建议不要吃香辣和煎炸的食物,多喝水,多吃点水果,不能吃牛肉和海鱼。可以服用(穿心莲片,维生素b2和b6)。也可以服用一些中药,如清热解毒的。
确实没有偿还能力的,应当与贷款机构进行协商,宽展还款期间或者分期归还; 如果贷款机构起诉到法院胜诉之后,在履行期未履行法院判决,会申请法院强制执行; 法院在受理强制执行时,会依法查询贷款人名下的房产、车辆、证券和存款;贷款人名下没有可供执行的财产而又拒绝履行法院的生效判决,则有逾期还款等负面信息记录在个人的信用报告中并被限制高消费及出入境,甚至有可能会被司法拘留。
第一步:教育引导
不同年龄阶段的孩子“吮指癖”的原因不尽相同,但于力认为,如果没有什么异常的症状,应该以教育引导为首要方式,并注意经常帮孩子洗手,以防细菌入侵引起胃肠道感染。
第二步:转移注意力
比起严厉指责、打骂,转移注意力是一种明智的做法。比如,多让孩子进行动手游戏,让他双手都不得闲,或者用其他的玩具吸引他,还可以多带孩子出去游玩,让他在五彩缤纷的世界里获得知识,增长见识,逐渐忘记原来的坏习惯。对于小婴儿,还可以做个小布手套,或者用纱布缠住手指,直接防止他吃手。但是,不主张给孩子手指上“涂味”,比如黄连水、辣椒水等,以免影响孩子的胃口,黄连有清热解毒的功效,吃多了还可导致腹泻、呕吐。
合肥政务区网络广告推广网络推广哪家公司比较好 一套能在互联网上跑业务的系统,被网络营销专家赞为目前最 有效的网络推广方式!
1、搜索引擎营销:分两种SEO和PPC,即搜索引擎优化,是通过对网站结构、高质量的网站主题内容、丰富而有价值的相关性外部链接进行优化而使网站为用户及搜索引擎更加友好,以获得在搜索引擎上的优势排名为网站引入流量。
良工拥有十多位资深制冷维修工程师,十二年生产与制造经验,技术力量雄厚,配有先进的测试仪器,建有系列低温测试设备,备有充足的零部件,包括大量品牌的压缩机,冷凝器,蒸发器,水泵,膨胀阀等备品库,能为客户提供迅捷,优质的工业冷水机及模温机维修和保养。
楼主,龙德教育就挺好的,你可以去试试,我们家孩子一直在龙德教育补习的,我觉得还不错。
成人可以学爵士舞。不过对柔软度的拒绝比较大。  不论跳什么舞,如果要跳得美,身体的柔软度必须要好,否则无法充分发挥出理应的线条美感,爵士舞也不值得注意。在展开暖身的弯曲动作必须注意,不适合在身体肌肉未几乎和暖前用弹振形式来做弯曲,否则更容易弄巧反拙,骨折肌肉。用静态方式弯曲较安全,不过也较必须耐性。柔软度的锻炼动作之幅度更不该超过疼痛的地步,肌肉有向上的感觉即可,动作(角度)保持的时间可由10馀秒至30-40秒平均,时间愈长对肌肉及关节附近的联结的组织之负荷也愈高。
正在加载...
Copyright &
Corporation, All Rights Reserved
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区
相关问答:123456789101112131415数据结构(C语言版)第一二章习题答案_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
数据结构(C语言版)第一二章习题答案
你可能喜欢下载费用:5 元 &
数据结构 习题 第二章 线性表.doc 第2章线性表一选择题1.下述哪一条是顺序存储结构的优点()【北方交通大学2001一、4(2分)】A.存储密度大B.插入运算方便C.删除运算方便D.可方便地用于各种逻辑结构的存储表示2.下面关于线性表的叙述中,错误的是哪一个()A.线性表采用顺序存储,必须占用一片连续的存储单元。B.线性表采用顺序存储,便于进行插入和删除操作。C.线性表采用链接存储,不必占用一片连续的存储单元。D.线性表采用链接存储,便于插入和删除操作。3.线性表是具有N个()的有限序列(N0)。【清华大学1998一、4(2分)】A.表元素B.字符C.数据元素D.数据项E.信息项4.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。【哈尔滨工业大学2001二、1(2分)】A.顺序表B.双链表C.带头结点的双循环链表D.单循环链表5.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。【南开大学2000一、3】A.单链表B.仅有头指针的单循环链表C.双链表D.仅有尾指针的单循环链表6.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用最节省时间。A单链表B单循环链表C带尾指针的单循环链表D带头结点的双循环链表7.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。则采用()存储方式最节省运算时间。【北京理工大学2000一、1(2分)】A.单链表B.双链表C.单循环链表D.带头结点的双循环链表8静态链表中指针表示的是()【北京理工大学2001六、2(2分)】A.内存地址B.数组下标C.下一元素地址D.左、右孩子地址9链表不具有的特点是()【福州大学1998一、82分】A.插入、删除不需要移动元素B.可随机访问任一元素C.不必事先估计存储空间D.所需空间与线性长度成正比10下面的叙述不正确的是()【南京理工大学1996一、10(2分)】A.线性表在链式存储时,查找第I个元素的时间同I的值成正比B线性表在链式存储时,查找第I个元素的时间同I的值无关C线性表在顺序存储时,查找第I个元素的时间同I的值成正比D线性表在顺序存储时,查找第I个元素的时间同I的值无关11线性表的表元存储方式有(1)和链接两种。试指出下列各表中使用的是何种存储方式表1是(2)存储方式;表2是(3)存储方式;表3是(4)存储方式;表4是(5)存储方式。表左的S指向起始表元。表元编号货号数量表元间联系3表1S→表2S→表3S→表4S→供选择的答案A连续B单向链接C双向链接D不连接E循环链接F树状G网状H随机I顺序J顺序循环121静态链表既有顺序存储的优点,又有动态链表的优点。所以,它存取表中第I个元素的时间与I无关。2静态链表中能容纳的元素个数的最大数在表定义时就确定了,以后不能增加。3静态链表与动态链表在元素的插入、删除上类似,不需做元素的移动。以上错误的是()【南京理工大学2000一、3(15分)】A.(1),(2)B.(1)C.(1),(2),3D(2)13若长度为N的线性表采用顺序存储结构,在其第I个位置插入一个新元素的算法的时间复杂度为()1LLINKQQRLINKPPLLINKRLINKQQLLINKQ;BPLLINKQPLLINKRLINKQQRLINKPQLLINKPLLINKCQRLINKPQLLINKPLLINKPLLINKRLINKQPLLINKQDQLLINKPLLINKQRLINKQPLLINKQPLLINKQ24.在单链表指针为P的结点之后插入指针为S的结点,正确的操作是()。A.PNEXTSSNEXTPNEXTB.SNEXTPNEXTPNEXTSC.PNEXTSPNEXTSNEXTD.PNEXTSNEXTPNEXTS25.对于一个头指针为HEAD的带头结点的单链表,判定该表为空表的条件是()A.HEADNULLB.HEAD→NEXTNULLC.HEAD→NEXTHEADD.HEADNULL26在双向链表存储结构中,删除P所指的结点时须修改指针()。A.PLLINKRLINKPRLINKPRLINKLLINKPLLINKB.PLLINKPLLINKLLINKPLLINKRLINKPC.PRLINKLLINKPPRLINKPRLINKRLINKD.PRLINKPLLINKLLINKPLLINKPRLINKRLINK27双向链表中有两个指针域,LLINK和RLINK分别指向前趋及后继,设P指向链表中的一个结点,现要求删去P所指结点,则正确的删除是()(链中结点数大于2,P不是第一个结点)A.PLLINKRLINKPLLINKPLLINKRLINKPRLINKDISPOSEPB.DISPOSEPPLLINKRLINKPLLINKPLLINK,RLINKPRLINKC.PLLINKRLINKPLLINKDISPOSEPPLLINKRLINKPRLINKD.以上A,B,C都不对。【南京理工大学1997一、1(2分)】二、判断1链表中的头结点仅起到标识的作用。【南京航空航天大学1997一、1(1分)】2顺序存储结构的主要缺点是不利于插入或删除操作。3.线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的。4.顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好。5对任何数据结构链式存储结构一定优于顺序存储结构。6.顺序存储方式只能用于存储线性结构。7.集合与线性表的区别在于是否按关键字排序。8所谓静态链表就是一直不发生变化的链表。9线性表的特点是每个元素都有一个前驱和一个后继。10取线性表的第I个元素的时间同I的大小有关11循环链表不是线性表【南京理工大学1998二、1(2分)】12线性表只能用顺序存储结构实现。【青岛大学2001四、2(1分)】13线性表就是顺序存储的表。【青岛大学2002一、1(1分)】14.为了很方便的插入和删除数据,可以使用双向链表存放数据。15顺序存储方式的优点是存储密度大,且插入、删除运算效率高。16链表是采用链式存储结构的线性表,进行插入、删除操作时,在链表中比在顺序存储结构中效率高。三、填空1.当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应采用_______存储结构。【北方交通大学2001二、4】2.线性表L(A1,A2,,AN)用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是________。【北方交通大学2001二、9】3.设单链表的结点结构为DATA,NEXT,NEXT为指针域,已知指针PX指向单链表中DATA为X的结点,指针PY指向DATA为Y的新结点,若将结点Y插入结点X之后,则需要执行以下语句_______;______【华中理工大学2000一、4(2分)】4.在一个长度为N的顺序表中第I个元素(10DOBEGIN2345READ(K)ENDQNEXTNILEND【北京师范大学1999三】21已给如下关于单链表的类型说明TYPELISTNODENODERECORDDATAINTEGERNEXTLISTEND以下程序采用链表合并的方法,将两个已排序的单链表合并成一个链表而不改变其排序性(升序),这里两链表的头指针分别为P和QPROCEDUREMERGELINKVARP,QLISTVARH,RLISTBEGIN(1)______HNEXTNILRHWHILEPNILANDQNILDOIFPDATANILTHENWHILEPRE↑NEXTNILDOBEGINPPRE↑NEXTIFP↑DATAPRE↑DATATHENPREPELSERETURNFALSEENDRETURNTRUE【燕山大学2000七、1(7分)】12设单链表结点指针域为NEXT,试写出删除链表中指针P所指结点的直接后继的C语言语句。【北京科技大学2000一、3】13设单链表中某指针P所指结点(即P结点)的数据域为DATA,链指针域为NEXT,请写出在P结点之前插入S结点的操作(PASCAL语句)。【北京科技大学1999一、2(2分)】14有线性表A1,A2,,AN,采用单链表存储,头指针为H,每个结点中存放线性表中一个元素,现查找某个元素值等于X的结点。分别写出下面三种情况的查找语句。要求时间尽量少。(1)线性表中元素无序。(2)线性表中元素按递增有序。(3)线性表中元素按递减有序。【北京邮电大学1994七(7分)】15.设PA,PB分别指向两个带头结点的有序(从小到大)单链表。仔细阅读如下的程序,并回答问题(1)程序的功能。(2)S1,S2中值的含义。(3)PA,PB中值的含义。PROCEDUREEXAMPA,PBBEGINP1PA↑NEXTP2PB↑NEXTPA↑NEXT∧S10S20WHILEP1≠∧ANDP2≠∧DOCASEP1↑DATAP2↑DATAP2P2↑NEXTP1↑DATAP2↑DATAPP1P1P1↑NEXTP↑NEXTPA↑NEXTPA↑NEXTPP2P2↑NEXTS1S11ENDWHILEP1≠∧DOPP1P1P1↑NEXTDISPOSEPS2S21END【南京航空航天大学1995十(9分)】16.写出下图双链表中对换值为23和15的两个结点相互位置时修改指针的有关语句。结点结构为LLINK,DATA,RLINK【北京邮电大学1992三、4(25/4分)】17.按照下列题目中的算法功能说明,将算法描述片段中的错误改正过来。(1)(4分)下面的算法描述片段用于在双链表中删除指针变量P所指的结点PRLINK←PLLINKRLINKPLLINK←PRLINKLLINKDISPOSEP(2)(6分)下面的算法描述片段用于在双链表中指针变量P所指结点后插入一个新结点NEWQQLLINK←PPRLINK←QQRLINK←PRLINKQ←PRLINKLLINK【山东大学1999八(10分)】18.已知L是一个数据类型LINKEDLIST的单循环链表,PA和PB是指向L中结点的指针。简述下列程序段的功能。【山东科技大学2001一、2(5分)】TYPELINKEDLIST↑NODENODERECORDDATADATATYPENEXTLINKEDLISTENDPROCMPPA,PBLINKEDLISTPROCSUBPS,QLINKEDLISTPSWHILEP↑NEXTQDOPP↑NEXTP↑NEXTSENDPSUBPPA,PBSUBPPB,PAENDP19.设双向循环链表中结点的数据域、前驱和后继指针域分别为DATA,PRE和NEXT,试写出在指针P所指结点之前插入一S结点的C语言描述语句。注在图2的框图中FOUND和EXIT均为布尔型的变量,可取值为TRUE和FALSE。VAL是整型变量,用来存放第一个均出现在F1,F2,F3中的相同整数。若F1,F2和F3中无相同的整数,FOUND的值为FALSE,否则FOUND的值为TRUE。F1↑LINK表示访问F1所指结点的LINK域。【哈尔滨工业大学1999三(15分)】21一线性表存储在带头结点的双向循环链表中,L为头指针。如下算法(1)说明该算法的功能。(2)在空缺处填写相应的语句。VOIDUNKNOWNBNODETPL{PLNEXTQPNEXTRQNEXT;WHILEQL{WHILEPL(2)已知头指针分别为LA和LB的带头结点的单链表中,结点按元素值非递减有序排列。写出将LA和LB两链表归并成一个结点按元素值非递减有序排列的单链表(其头指针为LC),并计算算法的时间复杂度。【燕山大学1998五(20分)】2图(编者略)中带头结点且头指针为HA和HB的两线性表A和B分别表示两个集合。两表中的元素皆为递增有序。请写一算法求A和B的并集AUB。要求该并集中的元素仍保持递增有序。且要利用A和B的原有结点空间。【北京邮电大学1992二(15分)】类似本题的另外叙述有1已知递增有序的两个单链表A,B分别存储了一个集合。设计算法实现求两个集合的并集的运算AA∪B【合肥工业大学1999五、1(8分)】(2)已知两个链表A和B分别表示两个集合,其元素递增排列。编一函数,求A与B的交集,并存放于A链表中。【南京航空航天大学2001六(10分)】(3)设有两个从小到大排序的带头结点的有序链表。试编写求这两个链表交运算的算法(即L1∩L2)。要求结果链表仍是从小到大排序,但无重复元素。【南京航空航天大学1996十一(10分)】(4)己知两个线性表A,B均以带头结点的单链表作存储结构,且表中元素按值递增有序排列。设计算法求出A与B的交集C,要求C另开辟存储空间,要求C同样以元素值的递增序的单链表形式存贮。【西北大学2000五8分】(5)已知递增有序的单链表A,B和C分别存储了一个集合,设计算法实现AA∪(B∩C),并使求解结构A仍保持递增。要求算法的时间复杂度为O|A||B||C|。其中,|A|为集合A的元素个数。【合肥工业大学2000五、1(8分)】3知L1、L2分别为两循环单链表的头结点指针,M,N分别为L1、L2表中数据结点个数。要求设计一算法,用最快速度将两表合并成一个带头结点的循环单链表。【东北大学1996二12分】类似本题的另外叙述有(1)试用类PASCAL语言编写过程PROCJOIN(VARLALINK;LBLINK)实现连接线性表LA和LBLB在后的算法,要求其时间复杂度为0(1),占用辅助空间尽量小。描述所用结构。【北京工业大学1997一、18分】(2)设有两个链表,HA为单向链表,HB为单向循环链表。编写算法,将两个链表合并成一个单向链表,要求算法所需时间与链表长度无关。【南京航空航天大学1997四(8分)】4顺序结构线性表LA与LB的结点关键字为整数。LA与LB的元素按非递减有序,线性表空间足够大。试用类PASCAL语言给出一种高效算法,将LB中元素合到LA中,使新的LA的元素仍保持非递减有序。高效指最大限度的避免移动元素。【北京工业大学1997一、212分】5已知不带头结点的线性链表LIST,链表中结点构造为(DATA、LINK),其中DATA为数据域,LINK为指针域。请写一算法,将该链表按结点数据域的值的大小从小到大重新链接。要求链接过程中不得使用除该链表以外的任何链结点空间。【北京航空航天大学1998五(15分)】6设L为单链表的头结点地址,其数据结点的数据都是正整数且无相同的,试设计利用直接插入的原则把该链表整理成数据递增的有序单链表的算法。【东北大学1996六14分】类似本题的另外叙述有(1)设一单向链表的头指针为HEAD,链表的记录中包含着整数类型的KEY域,试设计算法,将此链表的记录按照KEY递增的次序进行就地排序【中科院计算所1999五、1(10分)】7设LISTHEAD为一单链表的头指针,单链表的每个结点由一个整数域DATA和指针域NEXT组成,整数在单链表中是无序的。编一PASCAL过程,将LISTHEAD链中结点分成一个奇数链和一个偶数链,分别由P,Q指向,每个链中的数据按由小到大排列。程序中不得使用NEW过程申请空间。【山东大学1993六15分】类似本题的另外叙述有(1)设计算法将一个带头结点的单链表A分解为两个具有相同结构的链表B、C,其中B表的结点为A表中值小于零的结点,而C表的结点为A表中值大于零的结点(链表A的元素类型为整型,要求B、C表利用A表的结点)。【北京理工大学2000四、2(4分)】2设L为一单链表的头指针,单链表的每个结点由一个整数域DATA和指针域NEXT组成,整数在单链表中是无序的。设计算法,将链表中结点分成一个奇数链和一个偶数链,分别由P,Q指向,每个链中的数据按由小到大排列,算法中不得申请新的结点空间。【青岛海洋大学1999三(12分)】3将一个带头结点的单链表A分解为两个带头结点的单链表A和B,使得A表中含有原表中序号为奇数的元素,而B表中含有原表中序号为偶数的元素,且保持其相对顺序不变。1写出其类型定义2写出算法。【山东大学1998九9分】【山东工业大学2000九(9分)】8已知线性表(A1A2A3AN)按顺序存于内存,每个元素都是整数,试设计用最少时间把所有值为负数的元素移到全部正数值元素前边的算法例(X,X,X,X,X,XX)变为(X,X,XX,X,X)。【东北大学1998二15分】类似本题的另外叙述有(1)设有一元素为整数的线性表LA1,A2,A3,,AN,存放在一维数组AN中,设计一个算法,以表中AN作为参考元素,将该表分为左、右两部分,其中左半部分每个元素小于等于AN,右半部分每个元素都大于AN,AN位于分界位置上要求结果仍存放在AN中。【北京理工大学1999八(6分)】(2)顺序存储的线性表A,其数据元素为整型,试编写一算法,将A拆成B和C两个表,使A中元素值大于等于0的元素放入B,小于0的放入C中要求1)表B和C另外设置存储空间2)表B和C不另外设置,而利用A的空间【山东大学2001九、112分】(3)知线性表(A1,A2,A3,,AN)按顺序存储,且每个元素都是整数均不相同,设计把所有奇数移到所有偶数前边的算法。(要求时间最少,辅助空间最少)【东北大学1997三15分】4编写函数将一整数序列中所有负数移到所有正数之前,要求时间复杂度为O(N)【南京航空航天大学2001八(10分)】5已知一个由N(设N1000)个整数组成的线性表,试设计该线性表的一种存储结构,并用标准PASCAL语言描述算法,实现将N个元素中所有大于等于19的整数放在所有小于19的整数之后。要求算法的时间复杂度为ON,空间复杂度O1。【西安交通大学1996六(11分)】9试编写在带头结点的单链表中删除(一个)最小值结点的(高效)算法。VOIDDELETE(LINKLISTLAST0MAXLENENDVARLSQLISTTP【同济大学1998二12分】26.设有一个正整数序列组成的有序单链表(按递增次序有序,且允许有相等的整数存在),试编写能实现下列功能的算法(要求用最少的时间和最小的空间)1确定在序列中比正整数X大的数有几个(相同的数只计算一次,如序列{20,20,17,16,15,15,11,10,8,7,7,5,4}中比10大的数有5个);2在单链表将比正整数X小的数按递减次序排列;3将正整数(比)X大的偶数从单链表中删除。【东北大学2001二17分】27编写一个算法来交换单链表中指针P所指结点与其后继结点,HEAD是该链表的头指针,P指向该链表中某一结点。【吉林大学2001二、17分】类似本题的另外叙述有1已知非空线性链表第一个结点由LIST指出,请写一算法,交换P所指的结点与其下一个结点在链表中的位置设P指向的不是链表最后那个结点。【北京航空航天大学1999五(10分)】2已知任意单链表如图所示编者略去图。HEAD为表头指针,指向表的第一个元素,P为指向表中任意结点的指针,试设计一个算法,将P指向的结点和其后面结点交换位置(可采用任何高级语言描述算法)。【山东大学1992二12分】28.设键盘输入N个英语单词,输入格式为N,W1,W2,,WN,其中N表示随后输入英语单词个数,试编一程序,建立一个单向链表,实现(10分)(1)如果单词重复出现,则只在链表上保留一个。(单考生做)。(2)除满足(1)的要求外。链表结点还应有一个计数域,记录该单词重复出现的次数,然后输出出现次数最多的前KKN个单词(统考生做)。【南京航空航天大学1998九(10分)】29.已知一双向循还链表,从第二个结点至表尾递增有序,(设A1XAN)如下图“第二个结点至表尾”指A1AN,因篇幅所限,编者略去图。试编写程序,将第一个结点删除并插入表中适当位置,使整个链表递增有序。【南京航空航天大学1998八(10分)】30已知长度为N的线性表A采用顺序存储结构,请写一时间复杂度为0N、空间复杂度为01的算法,该算法删除线性表中所有值为ITEM的数据元素。(O(1)表示算法的辅助空间为常量)。【北京航空航天大学2000五(10分)】31.设民航公司有一个自动预订飞机票的系统,该系统中有一张用双重链表示的乘客表,表中结点按乘客姓氏的字母序相链。例如,下面是张某个时刻的乘客表。试为该系统写出一个当任一乘客要订票时修改乘客表的算法。序号DATALLINKRLINK1LIU652CHAN493WANG574BAO025MAI136DONG817XI308DENG969CUANG28【北方交通大学2000六(17分)】32.设有一头指针为L的带有表头结点的非循环双向链表,其每个结点中除有PRED(前驱指针),DATA(数据)和NEXT(后继指针)域外,还有一个访问频度域FREQ。在链表被起用前,其值均初始化为零。每当在链表中进行一次LOCATEL,X运算时,令元素值为X的结点中FREQ域的值增1,并使此链表中结点保持按访问频度非增(递减)的顺序排列,同时最近访问的结点排在频度相同的结点的最后,以便使频繁访问的结点总是靠近表头。试编写符合上述要求的LOCATEL,X运算的算法,该运算为函数过程,返回找到结点的地址,类型为指针型。【清华大学1997二(10分)】33.给定已生成一个带表头结点的单链表,设HEAD为头指针,结点的结构为DATA,NEXT,DATA为整型元素,NEXT为指针,试写出算法按递增次序输出单链表中各结点的数据元素,并释放结点所占的存储空间。要求不允许使用数组作辅助空间【华中理工大学2000八、2(13分)】34.已知三个带头结点的线性链表A、B和C中的结点均依元素值自小至大非递减排列(可能存在两个以上值相同的结点),编写算法对A表进行如下操作使操作后的链表A中仅留下三个表中均包含的数据元素的结点,且没有值相同的结点,并释放所有无用结点。限定算法的时间复杂度为O(MNP),其中M、N和P分别为三个表的长度。【清华大学1995一(15分)】
文档加载中……请稍候!
下载文档到电脑,查找使用更方便
5 元 &&0人已下载
还剩页未读,继续阅读
<a href="UserManage/CopyrightAppeal.aspx?bid=5700868" title="版权申诉" class="fLeft works-manage-item works-manage-report" target="_blank"
关&键&词: 数据结构习题 数据结构习题DOC 第二章线性表 数据结构 第二章线性表 DOC 数据结构习题 数据结构练习题第二章线性表 线性结构 数据结构练习 数据结构第二章线性表 第2章线性表 练习题 练习题第二章线性表
& 我的文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
本文标题:数据结构 习题 第二章 线性表.doc 链接地址:
当前资源信息
类型: 共享资源
格式: DOC
大小: 102.00KB
上传时间:

我要回帖

更多关于 循环链表不是线性表 的文章

 

随机推荐