版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、/*【题目】试写一算法,如果三个整数a,b和c的值不是依次非递增的,则通过交换,令其为非递增。*void Desce nd(i nt &a, int &b, int &c)/*通过交换,令a >= b >= c */if(c<=b&&b<=a) return;else if(a<b) swap( a,b);if(a<c) swa p( a,c);if(b<c) swap (b,c); void swa p(i nt &a,i nt &b) int temp;temp=a;a=b;b=a;/*【题目
2、】试编写算法求一元多项式P(x) = a0 + a1x + a2x2 + . + anxn的值P(x0),并确定算法中每一语句的执行次数和整个算法 的时间复杂度。*/float Polyno mial( int n, int a, float x)/*/*求一元多项式的值P(X)。*/数组a的元素ai为i次项的系数,i=0,.,n */float an swer =a0; float temp= 1.0; for(i nt i=1;i<=n;i+) temp *=x;an swer+=ai*te mp; retur n an swer;/*【题目】已知k阶裴波那契序列的定义为f(0)=0
3、, f(1)=0,f(k-2)=0, f(k-1)=1;f(n)=f(n-1)+f( n-2)+.+f( n-k), n=k,k+1,.试编写求k阶裴波那契序列的第m项值的函数算法,k和m均以值调用的形式在函数参数表中出现。*/Status Fib on acci (int k, int m, int &f)/*求k阶斐波那契序列的第m项的值f */if(k<=1|m<0)return ERROR;else if(m=k-1)f=1;else if(m=0)f=0;elseint i,j,sum;int *t;t=(i nt*)malloc(m*sizeof(i nt);f
4、or(i=0;i<=k-2;i+)ti=0;tk-1=1; for(i=k;i<=m;i+) sum=0; for(j=i-k;j<=i;j+) sum+=tj;ti=sum;f=tm;return OK;/*【题目】试编写算法,计算a0.n-1的第i-1个分量中算机中允许的整数最大值为i! X 2竹的值并存入数组(i=1,2,n)。假设计MAXINT,则当对某个 k(1< kw n)使k! X 2AQMAXINT时,应按出错处理。注意 选择你认为较好的出错处理方法。*/求i!*2i序列的值并依次存入长度为n的数组a;*/若所有值均不超过 MAXINT,则返回OK,否则
5、OVERFLOW */Status Series(i nt a, i nt n)/*/*int t=1, p=1;for(i nt i=1;i<=n;i+) t*=i;p*=2;ai-1=t* p;if(ai-1>MAXINT) return ERROR;return OK;/*【题目】假设有 A、B、C、D、E五个高等院校进行田径对抗赛, 各院校的单项成绩均以存入计算机并构成一张表,表中每一行 的形式为:项目名称性别 校名 成绩 得分编写算法,处理上述表格,以统计各院校的男、女总分和团体 总分,并输出。*/void Scores(ResultT ype *result, Scor
6、eT ype *score)求各校的男、女总分和团体总分,并依次存入数组score */假设比赛结果已经储存在result数组中,并以特殊记录"", male, ' ', "", 0 (域 scorce=0)*/表示结束/*/*/*/*/*/int i=0;while(resulti.s port!=NULL)switch(resulti.scho oln ame)case 'A': score0.totalscore+=resulti.score; if(resulti.ge nder=male)score0.males
7、core+=resulti.score;elsescore0.femalescore+=resulti.score; break;case 'B': score1.totalscore+=resulti.score; if(resulti.ge nder=male) score1.malescore+=resulti.score; elsescore1.femalescore+=resulti.score; break;case C: score2.totalscore+=resulti.score;if(resulti.ge nder=male)score2.malescor
8、e+=resulti.score;elsescore2.femalescore+=resulti.score; break;case 'D': score3.totalscore+=resulti.score;if(resulti.ge nder=male)score3.malescore+=resulti.score;elsescore3.femalescore+=resulti.score; break;case 'E': score4.totalscore+=resulti.score;if(resulti.ge nder=male)score4.male
9、score+=resulti.score;elsescore4.femalescore+=resulti.score; break;i+;/*【题目】试写一算法,对序列 S的第i个元素赋以值eo 序列的类型定义为:typ edef struct ElemT ype *elem;int len gth; Sequenee;*/Status Assig n( Seque nee &S, int i, ElemT ype e)/*/*对序列S的第i个元素赋以值 若S或i不合法,则赋值失败,e,并返回OKo */返回 ERROR */if(S.le ngth<1|i>S.le ng
10、th) return ERROR;elseS.elemi=e;return OK;/*【题目】试写一算法,由长度为n的一维数组a构建一个序列So序列的类型定义为:typ edef struct ElemT ype *elem;int len gth; Sequenee;*/由长度为n的一维数组a构建一个序列S,并返回OK。 */ 若构建失败,则返回 ERROR*/Status CreateSeque nce(Seque nee &S, int n, ElemT ype *a)/*/*if(n <1)return ERROR;elseS.elem=(ElemT yp e*)mall
11、oc( n*sizeof(ElemT yp e);S.elem0=a0;for(i nt i=1;i< n;i+)S.elemi=ai;S.le ngth=n;return OK;/*【题目】链表的结点和指针类型定义如下typ edef struct LNode ElemT ype data; struct LNode *n ext; LNode, *Li nkList;试写一函数,构建一个值为x的结点。*/Lin kList MakeNode(ElemT ype x)/*/*构建一个值为x的结点,并返回其指针。 若构建失败,则返回 NULL。*/*/LNode * p; p=(LNod
12、e*)malloc(sizeof(LNode); if(p=NULL) return NULL;elsep->data=x; return p;/*【题目】链表的结点和指针类型定义如下typ edef struct LNode ElemT ype data; struct LNode *n ext; LNode, *Li nkList;试写一函数,构建长度为2且两个结点的值依次为x和y的链表。*/Lin kList CreateLi nkList(ElemT ype x, ElemT ype y)构建其两个结点的值依次为x和y的链表。*/若构建失败,则返回 NULL。*/*/*LNode
13、 * p; p=(LNode*)malloc(sizeof(LNode); if(p=NULL) return NULL;else p->n ext=(LNode*)malloc(sizeof(LNode); if(p->n ext=NULL)return NULL;p->data=x;p->n ext->data=y;p->n ext->n ext=NULL;return p;/*【题目】链表的结点和指针类型定义如下typ edef struct LNode ElemT ype data; struct LNode *n ext; LNode, *L
14、i nkList;试写一函数,构建长度为2的升序链表,两个结点的值分别为x和y,但应小的在前,大的在后。*/构建长度为2的升序链表。 */ 若构建失败,则返回 NULL。*/Lin kList CreateOrdLList(ElemT ype x, ElemT ype y)/*/*LNode * p; p=(LNode*)malloc(sizeof(LNode);if(p=NULL)return NULL;elsep->n ext=(LNode*)malloc(sizeof(LNode); if(p->n ext=NULL)return NULL;p->data=(x<
15、y)?x:y;p->n ext->data=(x>y)?x:y;p->n ext->n ext=NULL;return p; /*【题目】试写一算法,实现顺序栈的判空操作StackE mp ty_Sq(SqStack S)顺序栈的类型定义为:typ edef struct ElemT ype *elem; /int top;int size;int in creme nt; SqStack;*Status StackE mp ty_Sq(SqStack S)/*/*/存储空间的基址栈顶元素的下一个位置,简称栈顶位标 当前分配的存储容量 扩容时,增加的存储容量顺序栈
16、对顺序栈S判空。*/若S是空栈,则返回 TRUE否则返回FALSE */if(S.t op=0) return TRUE; return FALSE;/*【题目】试写一算法,实现顺序栈的取栈顶元素操作GetTop_Sq(SqStack S, ElemT ype &e。顺序栈的类型定义为:typ edef struct ElemT ype *elem;int top;int size;int in creme nt; SqStack;/存储空间的基址栈顶元素的下一个位置,简称栈顶位标 当前分配的存储容量扩容时,增加的存储容量'顺序栈*/Status GetTop_Sq(SqSta
17、ck S, ElemT ype &e)/*/*取顺序栈S的栈顶元素到e,并返回0K; 若失败,则返回 ERROR*/*/if(S.t op=0) return ERROR;e=S.elemS.t op-1; return OK; /*【题目】试写一算法,实现顺序栈的出栈操作Po p_Sq(SqStack &S, ElemT ype &e)顺序栈的类型定义为:typ edef struct ElemT ype *elem;int top;int size;int in creme nt; SqStack;*/存储空间的基址栈顶元素的下一个位置, 当前分配的存储容量 扩容时
18、,增加的存储容量'顺序栈简称栈顶位标顺序栈S的栈顶元素出栈到 e,并返回0K; */ 若失败,则返回 ERROR*/Status Po p_Sq(SqStack &S, ElemT ype &e)/*/*if(S.t op=0) return ERROR;e=S.elem-S.to p;return OK;/*【题目】若顺序栈的类型重新定义如下。试编写算法, 构建初始容量和扩容增量分别为size和inc的空顺序栈 Styp edef struct /栈顶元素的下一个位置/当前分配的存储容量/扩容时,增加的存储容量ElemT ype *elem; / 存储空间的基址Ele
19、mT ype *top;int size;int in creme nt; SqStack2;*/Status In itStack_Sq2(SqStack2 &S, int size, i nt inc)/*构建初始容量和扩容增量分别为size和inc的空顺序栈S。*/*/I*若成功,则返回 OK;否则返回ERRORS.elem=(ElemT yp e*)malloc(sizeof(ElemT yp e); if(S.elem=NULL|size<=O|i nc<=0) return ERROR;S.t op=S.elem;S.size=size;S.i ncreme n
20、t=i nc;return OK; /*【题目】若顺序栈的类型重新定义如下。试编写算法, 实现顺序栈的判空操作。typ edef struct ElemT ype *elem; II存储空间的基址ElemType *top; II栈顶元素的下一个位置int size;II当前分配的存储容量intin creme nt;II扩容时,增加的存储容量 SqStack2;*对顺序栈S判空。*I若S是空栈,则返回 TRUE否则返回FALSE *IStatus StackE mp ty_Sq2(SqStack2 S)/*I*if(S.to p=S.elem) return TRUE; return FAL
21、SE;/*【题目】若顺序栈的类型重新定义如下。试编写算法, 实现顺序栈的入栈操作。typ edef struct ElemT ype *elem; II 存储空间的基址ElemT ype *top;int size;int in creme nt; SqStack2;*IStatus P ush_Sq2(SqStack2 &S, ElemT ype e)I*若顺序栈S是满的,则扩容,若失败则返回I*将e压入S,返回OK/栈顶元素的下一个位置/当前分配的存储容量/扩容时,增加的存储容量ERROR*/*/ElemT ype * p;if(S.t op-S.elem>S.size)p=
22、(ElemT yp e*)realloc(S.elem,(S.size+S.i ncreme nt)*sizeof(ElemT yp e); if(p=NULL)return ERROR;S.elem=p;S.size+=S.i ncreme nt;*(S.to p+)=e;return OK;/*【题目】若顺序栈的类型重新定义如下。试编写算法, 实现顺序栈的出栈操作。typ edef struct ElemT ype *elem; / 存储空间的基址ElemT ype *top;int size;int in creme nt; SqStack2;*/Status Pop_Sq2(SqSta
23、ck2 &S, ElemT ype &e)/*/*/栈顶元素的下一个位置/当前分配的存储容量/扩容时,增加的存储容量若顺序栈S是空的,则返回ERROR 否则将S的栈顶元素出栈到 e,返回OK。*/*/if(S.elem=S.t op) return ERROR; e=*(-S.to p); return OK;/*【题目】试写一算法, 顺序栈的类型定义为: typ edef struct ElemT ype *elem; / int top;int size;int in creme nt; SqStack;借助辅助栈,复制顺序栈S1得到S2。/存储空间的基址栈顶元素的下一个位
24、置,简称栈顶位标 当前分配的存储容量扩容时,增加的存储容量顺序栈可调用顺序栈接口中下列函数:Status InitStack_Sq(SqStack &S, int size, int inc); II 初始化顺序栈 SStatus DestroyStack_Sq(SqStack &S); II 销毁顺序栈 SStatus StackEmpty_Sq(SqStack S);II 栈 S判空,若空则返回 TRUE 否则 FALSEStatus Push_Sq(SqStack &S, ElemType e); II 将元素 e 压入栈 SStatus Pop_Sq(SqSta
25、ck &S, ElemType &e); II 栈 S 的栈顶元素出栈到 e*/Status Cop yStack_Sq(SqStack S1, SqStack & S2)I*I*借助辅助栈,复制顺序栈 S1得到S2。*I若复制成功,则返回 TRUE否则FALSE *Iif(StackE mp ty_Sq(S1) S2.to p=0; return TRUE;S2.elem=S1.elem;S2.t op=S1.t op; return TRUE;I*【题目】试写一算法,求循环队列的长度。 循环队列的类型定义为:typ edef struct ElemT ype *ba
26、se;int front;int rear;int maxSize; SqQueue;*Iint QueueLe ngth_Sq(SqQueue Q)I*返回队列Q中元素个数,即队列的长度。if(Q.rear-Q.fro nt<0)return Q.maxSize-Q.fr on t+Q.rear; return Q.rear-Q.fr ont;II存储空间的基址/队头位标II队尾位标,指示队尾元素的下一位置II最大长度*/I*【题目】如果希望循环队列中的元素都能得到利用, 则可设置一个标志域tag,并以tag值为0或1来区分尾 指针和头指针值相同时的队列状态是”空”还是”满"
27、。试编写与此结构相应的入队列和出队列的算法。本题的循环队列 CTagQueue的类型定义如下: typ edef struct ElemT ype elemMAXQSIZE;int tag;int front;int rear; CTagQueue;*/Status En CQueue(CTagQueue &Q, ElemT ype x)/*/*将元素x加入队列Q,并返回OK; */ 若失败,则返回 ERROR*/if(Q.fro nt=Q.rear&&Q.tag=1) return ERROR;if(Q.rear=0)Q.elem0=x;Q.rear+=1;elseQ
28、.elemQ.rear=x;Q.rear=(Q.rear+1)%MAXQSIZE; Q.tag=1;return OK;Status DeCQueue(CTagQueue &Q ElemT ype &x)/*/*将队列Q的队头元素退队到 X,并返回 若失败,则返回 ERROROK; */*/if(Q.fro nt=Q.rear&&Q.tag=0) return ERROR;x=Q.elemQ.fro nt;Q.fro nt=(Q.fro nt+1)%MAXQSIZE;Q.tag=0;return OK;/*【题目】假设将循环队列定义为:以域变量和length分别
29、指示循环队列中队尾元素的位置和内rear含元素的个数。试给出此循环队列的队满条件,并 写出相应的入队列和出队列的算法(在出队列的算 法中要返回队头元素)。本题的循环队列 CLe nQueue的类型定义如下:typ edef struct ElemT ype elemMAXQSIZE;int len gth;int rear; CLen Queue;*/Status En CQueue(CLe nQueue &Q, ElemT ype x)/*/*将元素x加入队列Q,并返回OK; */若失败,则返回 ERROR*/if(Qe ngth=MAXQSIZE) return ERROR;Q.r
30、ear=(Q.rear+1)%MAXQSIZE; Q.elemQ.rear=x;Q.le ngth+;return OK;Status DeCQueue(CLe nQueue &Q ElemT ype &x)/*/*将队列Q的队头元素退队到 X,并返回OK; */若失败,则返回 ERROR*/if(Q.le ngth=O)return ERROR;x=Q.elem(Q.rear+MAXQSIZE-Q.le ngth+1)%MAXQSIZE;Q.le ngth-;return OK;/*【题目】已知k阶斐波那契序列的定义为:f0=0,f1=0,fk-2=0,fk-1=1;fn=f
31、n-1+fn- 2+ +fnk, n=k,k+1,试利用循环队列编写求k阶斐波那契序列中第n+1项fn的算法。本题的循环队列的类型定义如下:typ edef struct ElemType *base; /存储空间的基址int front;/队头位标/队尾位标,指示队尾元素的下一位置 /最大长度int rear;int maxSize; SqQueue;*/long Fib(i nt k, int n)/*求k阶斐波那契序列的第n+1项fn */if(k<2| n <0)return ERROR;if(n< k-1)return 0;else if(n=k-1)return
32、1;elseSqQueue S;S.base=(ElemT yp e*)malloc( n+1)*sizeof(ElemT yp e);S.basek-1=1;int i,j,sum;for(i=0;i<k-1;i+)S.basei=0;for(i=k;i <n+1;i+)sum=0;for(j=i-k;j<=i;j+)sum+=S.basej;S.basei=sum;return S.base n;/*【题目】设A=(a1,am)和B=(b1,bn)均为有序顺序表,A'和B'分别为A和B中除去最大共同前缀后的子表(例如,A=(x,y,y,z,x,z,B=(x
33、,y,y,z,y,x,x,z)贝U两者中最大的共同前缀为(x,y,y,z),在两表中除去最大共同前缀后的子表分别为 A'=(x,z)和 B'=(y,x,x,z)。若 A'=B'=空表,则A=B;若A'=空表,而B'M空表,或者两者均不为空表, 且A'的首元小于B'的首元,贝U A<B;否则A>B。试写一个比 较A和B大小的算法。(注意:在算法中,不要破坏原表 A 和B,也不一定先求得 A'和B'才进行比较)。顺序表类型定义如下:typ edef struct ElemT ype *elem;intlen
34、 gth;intsize;intin creme nt; SqList;*/char Com pare(SqList A, SqList B)比较顺序表A和B,返回'<',若A<B; '=',若 A=B; '>',若 A>B*/*/*/*/*/*/*/*int i=0;while(i<=A.le ngth-1) &&(i<=B.le ngth-1)&&(A.elemi=B.elemi) +i;if(i=A.le ngth&&i=B.le ngth)return &
35、#39;='else if(i=A.le ngth&&i!=B.le ngth &&A.elemi<B.elemi)return '<'else if(i!=A.le ngth&&i!=B.le ngth &&A.elemi<B.elemi)return '<'else if(i=0&&A.elemi>B.elemi)return '>'elsereturn '<' /*【题目】试写一算法,实现顺序表的
36、就地逆置, 即利用原表的存储空间将线性表(a1,a2,an)逆置为(an,an-1,a1)。顺序表类型定义如下:typ edef struct ElemT ype *elem;intlen gth;intsize;intin creme nt; SqList;*/void In verse(SqList &L)ElemT ype temp;if(L.elem!=NULL&&L.le ngth!=1) for(i nt i=0;i<L.le ngth/2;i+)temp=L.elemi;L.elemi=L.elemL.le ngth-i-1;L.elemL.le n
37、gth-i-1=te mp;/*【题目】试对一元稀疏多项式项数m成正比的顺序存储结构,编写求 为给定值)。Pn(x)采用存储量同多项式Pn (x0)的算法(x0一元稀疏多项式的顺序存储结构typ edef struct int coef; /intex p; / Term;系数指数typ edef struct Term *elem;int Poly;*/float Evaluate( Poly P, float x)/* P.elemi.coef 存放 ai,/* P.elemi.exp 存放 ei (i=1,2,.,m) 本算法计算并返回多项式的值。不判别溢出。入口时要求0W e1<
38、e2<.<em,算法内不对此再作验证/存储空间基址length; /长度(项数)*/*/*/*/*/float result=0;float x_sum=1;int i,j;for(i=0;i< P.le ngth;i+)for(j=0;j <P. elemi.ex p;j+) x_sum*=x;result+=( P.elemi.coef*x_sum); x_sum=1;retur n result;/*【题目】假设有两个集合A和B分别用两个线性表LA和LB表示(即:线性表中的数据元素即为集合中的成员),试写一算法,求并集A = AU Bo顺序表类型定义如下/存储空间
39、的基址 当前长度 存储容量空间不够增加空间大小typ edef struct ElemT ype *elem;int len gth;/int size;/int in creme nt; / SqList; II 顺序表可调用顺序表的以下接口函数:Status InitList_Sq(SqList &L, int size, int inc); II 初始化顺序表 L int ListLength_Sq(SqList L); II返回顺序表 L中元素个数Status GetElem_Sq(SqList L, i nt i, ElemT ype & e);II用e返回顺序表L中
40、第i个元素的值int Search_Sq(SqList L, ElemT ype e);-1II在顺序表L顺序查找元素e,成功时返回该元素在表中第一次出现的位置,否则返回Status Append_Sq(SqList &L, ElemType e); II 在顺序表 L 表尾添加元素 e */void Un io n(SqList & La, SqList Lb)int count= 0;for(i nt i=0;i<ListLe ngth_Sq(Lb);i+) if(Search_Sq(La, Lb.elemi)=-1) coun t+;ElemT ype * p;p=
41、(ElemT ype *)realloc(La.elem,La.size+co un t*sizeof(ElemT yp e);if(p=NULL)return ;La.elem=p;for(i=0;i<ListLe ngth_Sq(Lb);i+) if(Search_Sq(La, Lb.elemi)=-1) Appen d_Sq(La,Lb.elemi);/*【题目】试写一算法,实现链栈的判空操作。 链栈的类型定义为:typ edef struct LSNode ElemT ype data;struct LSNode *n ext; / LSNode, *LStack; /*/Sta
42、tus StackE mp ty_L(LStack S)/*对链栈S判空。若S是空栈,则返回TRUE否则返回FALSE */if(S=NULL|S-> next=S)return TRUE;return FALSE;/数据域 指针域 结点和链栈类型/*【题目】试写一算法,实现链栈的取栈顶元素操作。 链栈的类型定义为:typ edef struct LSNode ElemT ype data;struct LSNode *n ext; / LSNode, *LStack; /*Status GetTop_L(LStack S, ElemT ype &e)/*/数据域 指针域 结点和
43、链栈类型/*取链栈S的栈顶元素到e,并返回OK; */ 若S是空栈,则失败,返回 ERROR */if(S=NULL|S-> next=S) return ERROR; e=S->data;return OK;/*【题目】试写一算法,实现链队列的判空操作。 链队列的类型定义为:typ edef struct LQNode ElemT ype data;struct LQNode *n ext; LQNode, *Queue Ptr; / typ edef struct Queue Ptr front;/Queue Ptr rear;/结点和结点指针类型队头指针队尾指针 LQueue
44、; II链队列类型*/Status QueueE mp ty_LQ(LQueue Q)/*/*判定链队列Q是否为空队列。*/若Q是空队列,则返回 TRUE否则FALSE */if(Q.fro nt!=NULL|Q.fro nt-> next!=NULL) return FALSE;return TRUE;I*【题目】试写一算法,实现链队列的求队列长度操作。 链队列的类型定义为:typ edef struct LQNode ElemT ype data;struct LQNode *n ext; LQNode, *Queue Ptr; IItyp edef struct Queue Ptr
45、 front;IIQueue Ptr rear;II结点和结点指针类型队头指针 队尾指针 LQueue; II链队列类型*Iint QueueLe ngth_LQ(LQueue Q)I*求链队列Q的长度并返回其值*Iif(Q.fro nt=NULL&&Q.fro nt->n ext=NULL) return 0;int len= 0;LQNode * p=Q.fro nt;while( p!=NULL)p=p->n ext;len+;return len;/*【题目】假设以带头结点的循环链表表示队列,并且 只设一个指针指向队尾元素结点 (注意不设头指针), 试编写相
46、应的队列初始化、入队列和出队列的算法。 带头结点循环链队列 CLQueue的类型定义为:typ edef struct LQNode ElemT ype data;struct LQNode *n ext; LQNode, *CLQueue;*/Status InitCLQueue(CLQueue &rear) / 初始化空队列 rear = (CLQueue)malloc(sizeof(LQNode);if(!rear) return FALSE;rear -> n ext = rear;return TRUE;Status En CLQueue(CLQueue &re
47、ar, ElemT ype x) / 入队 CLQueue head, p;head = rear -> n ext;p = (CLQueue)malloc(sizeof(LQNode); if(!p )return FALSE;p -> data = x;p -> next = head;rear -> n ext = p;rear = p;return TRUE;Status DeCLQueue(CLQueue &rear, ElemType &x) / 出队CLQueue head, p;head = rear -> next; / 头结点i
48、f(head = rear)return FALSE;p = head -> n ext;/将欲删除的队头结点暂存给px = p -> data;/将欲删除的队头结点的值赋给xhead -> next = p -> next;/将原队头结点的后继 p->next赋值给头结点后继 free( p);return TRUE;/*【题目】试写一算法,实现带头结点单链表的判空操作。单链表的类型定义为:typ edef struct LNode ElemT ype data;struct LNode*n ext; LNode, *Li nkList; /结点和结点指针类型*
49、判定带头结点单链表 L是否为空链表。*/若L是空链表,则返回 TRUE否则FALSE */Status ListE mp ty_L(Li nkList L)/*/*if(L=L->n ext|!L->n ext) return TRUE;return FALSE;/*【题目】试写一算法,实现带头结点单链表的销毁操作。 单链表的类型定义为:typ edef struct LNode ElemT ype data;struct LNode*n ext; LNode, *Li nkList; II结点和结点指针类型*/Status DestroyList_L(L in kList &am
50、p;L)I*销毁带头结点单链表 L,并返回OK。*Iif(L=L->n ext|!L->n ext) free(L);return OK;LNode * p=L-> next, * pt;while( p!=NULL)pt=p->n ext;free( p);p=pt;free(L);return OK; /*【题目】试写一算法,实现带头结点单链表的清空操作。单链表的类型定义为:typ edef struct LNode ElemT ype data;struct LNode*n ext; LNode, *Li nkList; II结点和结点指针类型Status Cle
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗数据可移植性的区块链数据交换体系
- 安徽名校2026届生物高一第一学期期末质量跟踪监视模拟试题含解析
- 医疗数据区块链平台的性能优化实践
- 医疗数据区块链共享的合规性评估模型
- 广西南宁市三中2026届生物高三第一学期期末调研试题含解析
- 医疗数据共享的医保支付伦理边界
- 医疗数据共享审计的区块链权限模型
- 黑龙江省大庆市实验中学2026届高二生物第一学期期末调研试题含解析
- 医疗数据共享中的权限生命周期管理
- 河北省石家庄市辛集市辛集中学2026届数学高三第一学期期末教学质量检测试题含解析
- 网络新闻评论智慧树知到期末考试答案章节答案2024年西南交通大学
- 新生儿科进修总结汇报
- 不锈钢无缝管工艺流程
- FreeCAD从入门到综合实战
- 药房药品安全管理月检查表
- 全国职业院校技能大赛(中职组) 化工生产技术赛项备考试题库-上(单选题部分)
- 下潘格庄金矿开发前景分析校正版
- 运输合同普通版
- 某燃气热电有限公司设备招标文件
- 扫路车使用说明书-通用
- GB/T 5226.1-2019机械电气安全机械电气设备第1部分:通用技术条件
评论
0/150
提交评论