收藏 分销(赏)

数据结构实验指导书(网络1401-1402).docx

上传人:二*** 文档编号:4581584 上传时间:2024-09-30 格式:DOCX 页数:34 大小:67.12KB
下载 相关 举报
数据结构实验指导书(网络1401-1402).docx_第1页
第1页 / 共34页
本文档共34页,全文阅读请下载到手机保存,查看更方便
资源描述
陕西理工大学重点课程《数据结构》实验指导书 使用班级:网络1401-1402 数学与计算机科学学院 计算机科学与技术系 2016年9月 return(S->top==-1 ?TRUE:FALSE);I int Isfull(SeqStack *S)( return(S->top==Stack_size- 1?TRUE:FALSE);} int Push(SeqStack *S,char x)( if(S->top==Stack_size-1) (printf(”栈满\n”); return FALSE; ) else { S->top++; S->data[S->top]=x; return TRUE; I} int Pushn(SeqStack *S,int x){ if(S->top==Stack_size-1) (printf("栈满 \n”); return FALSE; ) else (S->top++; S->data[S->topJ=x;return TRUE; int Popn(ScqStack *S,int *x)( if(S->top==-l) { printf(”操作数为空\n“); return FALSE; } else (*x=S->data[S->top]; S->top-; return TRUE; }I int Pop(ScqStack *S,char *x)( if(S->top==-l){ printf(”操作符为空\n”); return FALSE; } else (*x=S->data[S->top]; S->top-; return TRUE; }I char Gettop(SeqStack *S)I if(S->top==-l) (printfC'栈为空\n”); return FALSE; } else (retum(S->data[S->topJ); int Isoperator(char ch){ int i; for(i=0;iv7;i++) (if(ch==ops[i]) return TRUE; ) return FALSE;char Compare(char ch 1 ,char ch2) char pri;int priority; for(i=0;i<7;i++) { if(chl==opsfi]) m=i;if(ch2==ops[i]) n=i; } return cmp[m][nj;} int Execute(int a ,char op,int b) { int result; switch(op) (case '+':result=a+b; break; case '-,:result=a-b; break;case '*':result=a*b; break; case 7':result=a/b; break; } return result;int ExpEvaluation() ( int a,b,v,temp; char op,ch; char *str; int i=0; SeqStack OPTR; SeqStack OPND; InitStack(&OPTR);InitStack(&OPND); Pushn(&OPTR;#'); printf(”输入表达式,以#结束\n”); str=(char *)malloc(5()*sizeof(char)); gets(str); ch=str[i]; i++;while(ch!=,#,||Gettop(&OPTR)!='#') { if(!Isoperator(ch))temp=ch-'O*; ch=str[ij;i++; whilc(! Isoperator(ch)){ temp=temp* 10+ch-'O'; ch=str[i]; i++; } Pushn(&OPND,temp);) else( switch(Compare(Gettop(&OPTR),ch)) { case 'v':Push(&OPTR,ch); ch=str[i]; i++; break;case ’>':Pop(&OPTR,&op); Popn(&OPND,&b); Popn(&OPND,&a); v=Execute(a,op,b); Pushn(&OPND,v); break;case:Pop(&OPTR,&op); ch=str[ij; i++; break: }} } v=Gcttop(&OPND); return v;I void main() int result; system("clr"); result=ExpEvaluation(); printf("表达式的结果为:%d\nu,result); } 实验四队列 一、实验性质:必做二、实验学时:2学时 三、实验类型:验证四、实验目的: 1. 掌握队列顺序存储结构和链式结构,以便在实际背景下灵活运用。 2. 掌握队列的特点,即进先出的原则。 五、实验内容: 1)实现队列入队、出队操作; 2)利用栈和队列知识实现停车场管理。 根据题目要求,停车场只有一个大门,因此可用一个栈来模拟;而当栈满后, 继续来的车辆只能停在便道上,根据便道停车的特点,可知这可以用一个队列来 模拟,安排队的车辆先离开便道,进入停车场。由于在停车场中间的车辆可以提 前离开停车场,而且要求在离开车辆到停车场大门之间的车辆都必须先离开停车 场,让此车离去,然后再让这些车辆依原来的次序进入停车场,因此在一个栈和 一个队列的基础上,还需要有一个地方保存为了让路离开停车场的车辆,很显然 这也应该用一个栈来模拟。因此本题中用到两个栈和一个队列。 对于停车场和车辆规避所,有车辆进入和车辆离去两个动作,这就是栈的进 栈和出栈操作,只是还允许排在中间的车辆先离开停车场,因此在栈中需要进行 查找。而对于便道,也有入队列和出队列的操作,同样允许排在中间的车辆先离 去队列。这样基本动作只需利用栈和队列的基本操作就可实现。 六、程序实现: #include "stdio.h" #include',stdlib.h” #define N 5 #define M 10 typedef struct { int num; int arrtime; } Stacktype; typedef struct 〃定义停车场长度 〃定义栈元素的类型 〃定义栈 Stacktype stack[N]; int top;} Stack; typcdef struct node〃定义队列节点类型{ int num; struct node *next;}Queneptr; typedef struct// 定义队列( Queneptr * front, *rear;JQuene; void initstack(Stack *s)〃初始化栈{ s->top=-1;) int push(Stack *s,Stacktype x) 〃数据元素X进入指针S所指的栈( if(s->top=N-l) return(O); else(s->stack[++s->top]=x; return(l); )} Stacktype pop(Stack *s){ Stacktypc x; if(s->top<0) x.num=(); x.aiTtime=O; return(x);〃如果栈不空,返回栈顶元素 } else { x=s->stack [s->top]; s->top-; return x; }} void initquene(Quene *s) 〃初始化队列( s->front=(Queneptr*)malloc(sizeof(Queneptr));//产生一个新结点,作为头结点 s->rear=s->front; s->front->next=NULL; s->front->num=0;〃头结点的NUM保存队列元素的个数} void enquene(Quene *s,int num) 〃数据入队列{ Queneptr *p; p=(Queneptr*)malloc(sizeof(Queneptr));p->num=num; p->next=NULL; s->rear->next=p;s->rear=p; s->front->num++; }int delquene(Quene *s) Queneptr *p; int n; if (s->front==s->rear) 〃如果队列空 return(O); else p=s->front->next; s->front->next=p->next; if (p->next==NULL) s->rear=s->front; n=p->num; free(p); s->front->num—;return(n); () void arrive(Stack *sl,Quene *p,Stacktype x){ int f; f=push(sl,x);〃新到达的车辆入停车栈 if(f==O) { enquene(p,x.num);〃如果停车场满,就进入队列 printf("the %d car stops the %d seat of the quene\n",x.num,p->front->num); ) else printf("the %d car stops the %d seat of the stack\nn,x.num,s 1 ->top+1);} void leave(Stack *sl,Stack *s2,Quene *p,Stacktype x) 〃处理车辆离去函数 { int n,f=0; Stacktype y; Queneptr *q; while((s 1 ->top>- !)&&(! f)) (y=pop(sl); if(y.num!=x.num)n=push(s2,y); else f=l; }if(y.num==x.num) 〃如果栈顶元素不是要离开的车辆,就将其放入车辆规避所 ( printf("thc money of the %d is %d yuan\nM,y.num,(x.arrtime-y.arrtime)*M); while(s2->top>-l) ( y=pop(s2); f=push(sl,y); } n=delquene(p);if(n)〃在停车场中找到要离开的车辆 { y.num=n; y.arrtime=x.arrtime; f=push(sl,y); printf(Hthe %d car stops the %d seat of the stak\n",y.num,s 1 ->top+1); ) }else { while(s2->top>-1)〃车辆规避所不空,将其全放回停车场 (y=pop(s2);f=push(s l,y); } q=p->front;f=0; while(f==O&&q->next!=NULL)if(q->next->num!=x.num) 〃如果便道上有车辆,将第一辆车放入停车场 q=q->next; else ( q->next=q->next->next;p->front->num—; 《数据结构》上机实验的目的和要求.・・・.1实验一线性表的基本操作2 实验二链表的基本操作.6实验三栈7 实验四队列12实验五二叉树的操作..19 实验六图的有关操作.22实验七电话号码查询系统的设计与实现.29 if(q->next==NULL)p->rear=p->front; printf("lhe %d car leave the quene\n",x.num);f=l; } if(仁二0)〃在便道上没有找到要离开的车辆,输出数据错误 printf("error!the stack and the quene have no the%d car\n",x.num);) )void main()〃停车场模拟 { char ch; int cord; Stack *sl,*s2; Quene *p; Stacktype x; int i=1;//clrscr(); // system("clr"); s 1 =(Stack*)malloc(sizeof(Stack)); s2=(Stack*)malloc(sizeof(Stack)); p=(Quene*)malloc(sizeof(Quene)); initstack(sl); initstack(s2);〃初始化停车规避所栈 initquene(p);〃初始化便道队列do { printf(" \n主菜单\n"); printf("l进入停车场\n"); printf("2离开停车场\n”); printf(M3 退出 \n”); printf(H\nM); printf(”请输入你的选择(1, 2, 3) ”); scanf(”%d”,&cord); switch(cord) /*printf("what do you want to do?\n"); printf("input---(Add/Del/Exit):"); scanf("%c",&ch); switch (ch)*/ ( case 1: printf(H请输入车辆到达序号:\n”); scanf("%d",&x.num);print"请输入车辆到达时间:\n”); scanf("%d",&x.arrtime); arrive(sl,p,x);〃车辆到达break; case 2: printfC*请输入车辆离开序号:\n”); scanf("%d",&x.num); printf(”请输入离开时间:\n”); scanf(”%d”,&x.arrtime); leave(s 1 ,s2,p,x);〃车辆离开 break; case 3:/*printf("the end!");i=0;*/exit(O); break;default:{printf("输入不对,请重新输入:\n"); break; }) }while(i<=3);//ch=getchar(); } 实验五二叉树的操作 一、实验性质:必做二、实验学时:4学时 三、实验类型:验证四、实验目的: 掌握二叉树的定义、性质及存储方式,各种遍历算法。 五、实验内容: 采用二叉树链表作为存储结构,完成二叉树的建立,先序、中序和后序遍历 的操作,求所有叶子结点总数的操作。 六、程序实现 typcdef struct node( char data; struct node *lc; struct node *rc;}*BiTree; ini m=0;void Prctraverse(B iTree t)先序遍历 ( if(t!二NULL) {pr intf(" %c" ,t->data); Pretraverse(t->lc);Pretraverse(t->rc); }) void Inorder(BiTree t)中序遍历 void Postorder(BiTree t)后序遍历 { Ivoid creat(BiTree *t) { char ch; //printf(”请输入数据\n”); scanf("%c",&ch); if(ch='#') {*l=NULL; return; } else ( *t=(BiTree)malloc(sizeof(struct node)); (*t)->data=ch; printf(" %c 二 ch);creat(&((*t)->lc)); creat(&((*t)->rc)); )} void main(){ BiTree t; systeni(nclr"); int cord; do printf("\n 二叉树相关操作 \n”); printfC' 1 建立二叉树 \n”); printf(" 2 先序遍历二叉树 \n”); printfC' 3 中序遍历二叉树 \n"); printf(H4后序遍历二叉树,统计叶子结点数\n”);printfC* 5程序运行结束\nu); printfC\n”);printf(”请输入你的选择(1, 2, 3, 4, 5):”); scanf("%d",&cord); switch(cord)( case 1: {creat(&t); printf(”二叉树建立完成,请继续执行其他操作\n”); (break;case 2: {Pretraverse(t); printf(”先序遍历完成\n”);)break; case 3: {Inordcr(t); printf(”中序遍历完成\n”);)break; case 4: { Postorder(t); printfC*后序遍历完成\n”); printf(”叶子结果数为%3d”,m);)break; case 5: printf(H二叉树程序执行完毕! \n”); exit(O);) )while(cord<=5); 实验六图的有关操作 一、实验性质:必做二、实验学时:4学时 三、实验类型:验证四、实验目的 掌握有向图和无向图的概念;掌握邻接矩阵和邻接链表建立图的存储结构; 掌握DFS及BFS对图的遍历操作;了解图结构在人工智能、工程等领域的广泛应 用。 五、实验内容 采用邻接矩阵和邻接表作为图的存储结构,完成无向图的DFS及BFS操作。 六、程序实现 1. 邻接矩阵作为存储结构的程序示例#include,,stdio.hn #includeustdlib.h”#define Max Vertex Num 10()〃定义最大顶点数 typedef struct) char vexs[MaxVertexNum];〃顶点表 int edges[MaxVertexNum][MaxVertexNum]; 〃邻接矩阵,可看作边表 int n,e;〃图中的顶点数n和边数eJMGraph;〃用邻接矩阵表示的图的类型 〃建立邻接矩阵void CreatMGraph(MGraph *G) { int i,j,k; char a; printf(nInput VertexNum(n) and EdgesNum(e):"); scanf(”%d,%d”,&G->n,&G->e);〃输入顶点数和边数 scanf("%c",&a); printf("Input Vertex string:"); for(i=0; i<G->n; i++) ( scanf("%c",&a); G->vexsfi]=a;〃读入顶点信息,建立顶点表 for(i=0; i<G->n; i++)for(j=0; j<G->n; j++) G->edges[i]|j]=O;〃初始化邻接矩阵 printf("Input edges,Creat Adjacency Matrix\n"); for(k=0; kvG->e; k++) (〃读入e条边,建立邻接矩阵 scanf(”%d%d”,&i,&j);〃输入边(Vi, Vj)的顶点序号 G->edgesliJ[jJ=l; G->edges[j][i]=l;〃若为无向图,矩阵为对称矩阵;若建立有向图,去掉该条语句 }} 〃定义标志向量,为全局变量typedef enum{FALSE,TRUE} Boolean; Boolean visited[MaxVertexNum]: 〃DFS:深度优先遍历的递归算法void DFSM(MGraph *G,int i) 〃访问顶点Vi 〃置已访问标志 〃依次搜索Vi的邻接点 {〃以Vi为出发点对邻接矩阵表示的图G进行DFS搜索,邻接矩阵是0, 1矩阵 int j; printf("%c",G->vexs[i]); visitcd[i]=TRUE; for(j=0; j<G->n; j++) if(G->edges[i][j]== 1 && ! visited。])// (Vi, // (Vi, DFSM(Gj); Vj) eE,且Vj未访问过,故Vj为新出发点 }void DFS(MGraph *G) int i; for(i=0; i<G->n; visited[i]=FALSE; for(i=0; ivG->n; if(!visited[i]) DFSM(Qi); i++) i++) 〃标志向量初始化 //Vi未访问过 〃以Vi为源点开始DFS搜索 ) //BFS:广度优先遍历void BFS(MGraph *G,int k)(〃以Vk为源点对用邻接矩阵表示的图G进行广度优先搜索 int i,j,f=O,r=O; 〃定义队列 int cq[MaxVertexNum]: 〃标志向量初始化 for(i=0; i<G->n; i++) visitcd[i]=FALSE; 〃队列初始化 〃访问源点Vk for(i=0; i<G->n; i++) cqlij=-l; printf("%c",G->vexs[k]); //Vk己访问,将其入队。注意,实际上是将其序号入队 〃队非空则执行 visited[k]=TRUE; cq[r]=k: while(cq[f]!=-l) (i=cq[f|; f=f+l;〃Vf 出队 for(j=0; j<G->n; j++)〃依次 Vi 的邻接点 Vj〃访问Vj 〃访问Vj 〃访问过Vj入队 if(G->edges[i]|j]==l && !visited。]) { //Vj 未访问 printf("%c",G->vexs[j]); visited[j]=TRUE; r=r+1; cq[rl=j; )) //mainvoid main() int 1; MGraph *G; 〃为图G中请内存空间 G=(MGraph *)malloc(sizeof(MGraph)); CreatMGraph(G);〃建立邻接矩阵 printf(MPrint Graph DFS:, DFS(G);〃深度优先遍历 printf(”\n, printfC'Print Graph BFS:"); BFS(G,3);〃以序号为3的顶点开始广度优先遍历 printf(,,\nM); 执行顺序: Input VertexNum(n) and EdgesNum(e): 8, 9I叩ut Vertex string: 01234567 Input edges,Creat Adjacency Matrix013。 02\1 3 1 425 26 图G的示例37 4756 Print Graph DFS: 01374256Print Graph BFS: 31704256 2. 邻接链表作为存储结构程序示例#include"stdio.h" #inc】ude”stdlib.h”typedef VertexNode AdjList[MaxVertexNum] ;//Adj Li st 是邻接表类型 #define MaxVertexNum 50 〃定义最大顶点数 typedef struct node{ int adj vex; struct node *next: JEdgeNode; 〃边表结点 〃邻接点域 〃链域 typedef struct vnode ( char vertex ; EdgeNodc *firstcdge; } VertexNode; 〃顶点表结点 〃顶点域 〃边表头指针 typedef struct ( Adj List adj list; 〃邻接表 int n,e; ( ALGraph ; 〃图中当前顶点数和边数 〃图类型 〃建立图的邻接表 《数据结构》上机实验的目的和要求 通过上机实验加深对课程内容的理解,增加感性认识,提高软件设计、编写 及调试程序的能力。 要求所编的程序能正确运行,并提交实验报告。实验报告的基本要求为: 1、需求分析:陈述程序设计的任务,强调程序要做什么,明确规定: (1) 输入的形式和输出值的范围; (2) 输出的形式; (3) 程序所能达到的功能; (4) 测试数据:包括正确的输入输出结果和错误的输入及输出结果。 2、概要设计:说明用到的数据结构定义、主程序的流程及各程序模块之间的 调用关系。 3、详细设计:提交带注释的源程序或者用伪代码写出每个操作所涉及的算 法。 4、调试分析: (1) 调试过程中所遇到的问题及解决方法; (2) 算法的时空分析; (3) 经验与体会。 5、用户使用说明:说明如何使用你的程序,详细列出每一步操作步骤。 6、测试结果:列出对于给定的输入所产生的输出结果。若有可能,测试随输 入规模的增长所用算法的实际运行时间的变化。 void CreatALGraph(ALGraph *G)( int i,j,k; char a: EdgeNode *s;〃定义边表结点 printf("Input VertexNum(n) and EdgcsNum(e):"); scanf(”%d,%d”,&G->n,&G->e);〃读入顶点数和边数 scanf("%cH,&a); printf("Input Vertex string:"); for(i=0; i<G->n; i++)〃建立边表 { scanf(”%c”,&a); G->adjlist[i].vertex=a;〃读入顶点信息 G->adj 1 ist [ i]. firstedge=NULL:〃边表置为空表 } printf("Input edges,Creat Adjacency List\n”); for(k=0; k<G->e; k++) ( 〃建立边表 scanf(”%d%d”,&i,&j);〃读入边(Vi, Vj)的顶点对序号 s=(EdgeNode *)malloc(sizcof(EdgcNodc));〃生成边表结点 s->adjvex=j;〃邻接点序号为j s->next=G->adj 1 ist [ i]. firstedge ; G->adjlistfi].firstedge=s;〃将新结点*S插入顶点Vi的边表头部 s=(EdgeNode *)malloc(sizeof(EdgeNode)); s->adjvex=i;〃邻接点序号为i s->next=G->adj list|j]. firstedge ; G->adj 1 ist[j].firstedge=s:〃将新结点*S插入顶点Vj的边表头部 }) 〃定义标志向量,为全局变量typedef enum{FALSE,TRUE) Boolean; Boolean visited[MaxVertexNum]: 〃DFS:深度优先遍历的递归算法void DFSM(ALGraph *G,int i) {〃以Vi为出发点对邻接链表表示的图G进行DFS搜索 EdgeNode *p: printf(M%c",G->adjlisl[i].vertex); 〃访问顶点 Vi visited[i]=TRUE;〃标记 Vi 己访问 p=G->adjlist[i].firstedge;〃取 Vi 边表的头指针 while(p)(〃依次搜索Vi的邻接点Vj,这里j=p->adjvexif(! visited[p->adjvex]) DFSM(G,p->adjvex); p=p->next; } ) void DFS(ALGraph *G) { int i; if(! visited[p->adjvex]) DFSM(G,p->adjvex); p=p->next; } ) void DFS(ALGraph *G) { int i; 〃若Vj尚未被访问 〃则以Vj为出发点向纵深搜索 〃找Vi的下一个邻接点 for(i=0; i<G->n: i++) visited[i]=FALSE; for(i=(); i<G->n; i++) if(!visited[i]) DFSM(Gi); for(i=0; i<G->n: i++) visited[i]=FALSE; for(i=(); i<G->n; i++) if(!visited[i]) DFSM(Gi); 〃标志向量初始化 //Vi未访问过 〃以Vi为源点开始DFS搜索 } //BFS:广度优先遍历 void BFS(ALGraph *G,int k) (〃以Vk为源点对用邻接链表表示的图G进行广度优先搜索 int i,f=O,r=O; EdgeNode *p; int cq[MaxVertexNum]: for(i=0; i<G->n; i++) visited[i]=FALSE; for(i=0; i<=G->n; i++) EdgeNode *p; int cq[MaxVertexNum]: for(i=0; i<G->n; i++) visited[i]=FALSE; for(i=0; i<=G->n; i++) cq[i]=-l; printf(M%c",G->adjlist[k].vertex); 〃定义FIFO队列 〃标志向量初始化 〃初始化标志向量 〃访问源点Vk visited[k]=TRUE; cq(r]=k; 〃Vk己访问,将其入队。注意,实际上是将其序号入队 while(cq[f]!=-1) (队列非空则执行 i=cq[f]; f=f+l;//Vi 出队 p=G->adj 1 ist[i].firstedge:〃取 Vi 的边表头指针 while(p) (〃依次搜索Vi的邻接点Vj (令p->adjvex=j)if(!visited[p->adjvex]) (〃若 Vj 未访问过 printf("%c",G->adjlist[p->adjvex].vertex);〃访问 Vj 〃访问过的Vj入队 visited[p->adj vex] =TRUE ; r=r+1: cq[r]=p->adjvex;} 〃找Vi的下一个邻接点 p=p->next;} )//cndwhile ) 〃主函数 void main() {int i; ALGraph *G;G=(ALGraph *)malloc(sizeof(ALGraph)); CreatALGraph(G);printf("Print Graph DFS:"); DFS(G);printf("\n"); printf(MPrint Graph BFS: ");BFS(G3); printf(,,\n,,); } 执行顺序: Input VertexNum(n) and EdgesNum(e): 8, 9 Input Vertex string: 01234567 图G的示例 Input edges,Creat Adjacency List 0 1 02 1 3 1 4 25 26 37 47 56 Print Graph DFS: 02651473 Prim Graph BFS: 37140265 实验七 电话号码查询系统的设计与实现 一、实验性质:必做二、实验学时:4学时 三、实验类型:综合四、实验目的 利用《数据结构》课程相关知识,以C/C++作为编程语言完成一个具有一定 难度的综合实验。通过本实验,巩固和加深对线性表、栈、队列、树、图、查找、 排序等理论知识的理解;掌握现实问题的分析和解决方法,进而提高利用计算机 分析解决综合实际问题的基本能力。 五、实验内容 编写一个电话号码查询系统,要求按照人名顺序进行记录排序,分别按照电 话号码和人名进行查询,能将满足查询要求的记录删除。 具有要求: 1) 2) 3) 4) 5) 6) 7) 数据以文件的方式存放; 从文件中读取数据; 按照人名对对电话本中的记录进行排序; 根据电话号码查找相关信息; 根据姓名查找相关信息; 删除符合条件的记录; 数据输出以文件存储。 实验一线性表的基本操作 一、实验性质:必做二、实验学时:2学时 三、实验类型:验证四、实验目的 1、掌握用VC++上机调试线性表的基本方法;2、掌握线性表的基本操作,插入、删除、查找,以及线性表合并等运算在顺序存 储结构和链接存储结构上的运算。 五、实验内容 1) 线性表建立、插入、删除操作实现: 2) 己知有序表SA, SB,其元素均为递增有序,将此两表归并成一个新有序 表SC,且SC中的元素仍然递增有序。 六、程序实现struct SQList { int eiem[MAXSIZE]; intlen;}; SQList creat_SQList()/*建立顺序表*/( SQList 1; int i=0; printf(H请输入顺序表”); scanf(u%du,&l.elem[i]); while(Lelem [i]!=0) {i++; scanf(n%dM,&Lelem [i]); } l.len=—i; return 1; void print_SQList(SQList 1)//顺序表输出} SQList Merge_SQList(SQList LA,SQList LB)/*合并*/( ) SQList SQList_insert(SQList s,int i,int x)/*插入*/{ intj; if(i<()||i>s.len)printf("插入位置不存在, else (for(j=s.len ;j>=i;j-) s.elem [j+l]=s.elem [j];s.elem [i]=x; s.len =s.len+l; } //print_SQList( s); return s;} SQList SQList_delete(SQList s,int i)/*删除*/( intj; if(i<O||i>s.len)printf("i位置不存在, elsefor(j=i;j<=s.len ;j++) s.elem [j]=s.elem [j+l]; s.len-; //prinl_SQList( s); return s;} void main()( SQList LA,LB,LC; int i,y,cord;// clrscr(); doprintf(M请输入你的选择(1, 2, 3, printf("\n 主菜单 \n"); printfC'l 建立线性表\n”); printf("2 插入一个元素 \n”); printf("3 删除一个元素 \n”); printf("4 合并线性表 \n”); printf("5 退出 \nn); printf(H \n“); scanf(”%d”,&c
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服