#include <stdio.h> #include <malloc.h> #define MAXSIZE 50 typedef char elemtype;typedef struct { elemtype v[MAXSIZE]; int last; }SqList;SqList *Init_SeqList() { SqList L;L=(SqList)malloc(sizeof(SqList));L->last=-1;返回 L;} void Create(SqList L) { int i=0; elemtype ch; scanf(“%c”,&ch); while(ch!='\n') { L->v[i++]=ch; scanf(“%c”,&ch);L->last=i-1;} } void PrintL(SqList L) { int i; printf(“此表为:\n”); for(i=0;i<L->last;i++) { printf(“%c->”,L->v[i]); } printf(“%c\n”,L->v[i]); } void Length(SqList *L) { printf(“此表长度:\n%d”,L->last+1); printf(“\n”); } void Insert(SqList *L,int i,elemtype x) { int j; if(L->last==0) printf(“Error!\n”); if(i<1||i>L->last) printf(“Error!”);for(j=L->last;j>=i-1;j--) L->v[j+1]=L->v[j];L->v[i-1]=x;L->last++;打印L(L);} void Delete(SqList *L,int i) { int j; if(L->last==-1) printf(“Error!”); if(i<1||i>L->last+1) printf(“Error!”);for(j=i;j<=L->last;j++) L->v[j-1]=L->v[j];L->最后--;打印L(L);} void main() { int i,j,k; elemtype a,b;SqList *L;L=Init_SeqList();printf(“建立顺序表:\n”);创建(L);打印L(L);长度(L);printf(“\n”);printf(“请输入你想插入的元素及其位置:\n”);scanf(“%c %d”,&b,&j);插入(L,j,b);printf(“请输入你想删除的位置:\n”);scanf(“%d”,&k);删除(L,k);}在此基础上加入 输入你想查找的元素序位,输出你查找的元素的部分

时间: 2023-06-14 20:06:57 浏览: 71
#include <stdio.h> #include <malloc.h> #define MAXSIZE 50 typedef char elemtype; typedef struct { elemtype v[MAXSIZE]; int last; } SqList; SqList *Init_SeqList() { SqList *L; L = (SqList*)malloc(sizeof(SqList)); L->last = -1; return L; } void Create(SqList *L) { int i=0; elemtype ch; scanf("%c", &ch); while(ch != '\n') { L->v[i++] = ch; scanf("%c", &ch); } L->last = i-1; } void PrintL(SqList *L) { int i; printf("此表为:\n"); for(i=0; i<L->last; i++) { printf("%c->", L->v[i]); } printf("%c\n", L->v[i]); } void Length(SqList *L) { printf("此表长度:%d", L->last+1); printf("\n"); } void Insert(SqList *L, int i, elemtype x) { int j; if(L->last == MAXSIZE-1) printf("Error!\n"); if(i<1 || i>L->last+1) printf("Error!"); for(j=L->last; j>=i-1; j--) L->v[j+1] = L->v[j]; L->v[i-1] = x; L->last++; PrintL(L); } void Delete(SqList *L, int i) { int j; if(L->last == -1) printf("Error!"); if(i<1 || i>L->last+1) printf("Error!"); for(j=i; j<=L->last; j++) L->v[j-1] = L->v[j]; L->last--; PrintL(L); } void Search(SqList *L, int i) { if(i<1 || i>L->last+1) printf("Error!"); else printf("查找元素:%c\n", L->v[i-1]); } void main() { int i, j, k; elemtype a, b; SqList *L; L = Init_SeqList(); printf("建立顺序表:\n"); Create(L); PrintL(L); Length(L); printf("\n"); printf("请输入你想插入的元素及其位置:\n"); scanf("%c %d", &b, &j); Insert(L, j, b); printf("请输入你想删除的位置:\n"); scanf("%d", &k); Delete(L, k); printf("请输入你想查找的元素的序位:\n"); scanf("%d", &i); Search(L, i); }

相关推荐

请优化一下代码:#include <stdio.h> #include <stdlio.h> #define MaxSize 100 typedef char ElemType; typedef struct node//二叉树顺序结构的类型声明 { ElemType data;//数据元素 struct node *lchild;//指向左孩子结点 struct node *rchild;//指向有孩子结点 }BTNode; void CreateBTree(BTNode *&b,char *str)//创建二叉树 { BTNode *St[MaxSize],*p; int top=-1,k,j=0; char ch; b=NULL; ch=str[j]; while(ch!='\0') { switch(ch) { case'(':top++;St[top]=p;k=1;break; case')':top--;break; case',':k=2;break; default:p=(BTNode *)malloc(sizeof(BTNode)); p->data=ch; p->lchild=p->rchild=NULL; if(b==NULL) b=p; else { switch(k) { case 1:St[top]->lchild=p;break; case 2:St[top]->rchild=p;break; } } } j++; ch=str[j]; } } void DestoryBTree(BTNode *&b)//销毁二叉树 { if(b!=NULL) { DestoryBTree(b->lchild); DestoryBTree(b->rchild); free(b); } } BTNode *FindNode(BTNode *b,ELemType x)//查找节点 { BTNode *p; if(b==NULL) return NULL; else if(b->data==x) return b; else { p=FindNode(b->lchild,x); if(p!=NULL) return p; else return FindNode(b->lchild,x); } } BTNode *LchildNode(BTNode *p)//返回节点p的左孩子节点 { return p->lchild; } BTNode *RchildNode(BTNode *p)//返回节点p的右孩子节点 { return p->rchild; } int BTHeight(BTNode *b) { int lchildh,rchildh; if(b==NULL)return(0); else { lchildh=BTHeight(b->lchild); rchildh=BTHeight(b->rchild); return (lchildh>rchildh)?(lchildh+1):(rchildh+1); } } void DispBTree(BTNode *b)//输出二叉树 { if(b!=NULL) { printf("%c",b->data); if(b->lchild!=NULL||b->rchild!=NULL) { printf("("); DispBTree(b->lchild); if(b->rchild!=NULL)printf(","); DispBTree(b->rchild); printf("("); } } } void PreOrder(BTNode *b)//先序遍历 { if(b!=NULL) { printf("%c",b->data); PreOrder(b->lchild); PreOrder(b->rchild); } } void InOrder(BTNode *b)//中序遍历 { if(b!=NULL) { InOrder(b->lchild); printf("%c",b->data); InOrder(b->rchild); } }

最新推荐

recommend-type

JavaScript_构建您的第一个移动应用程序.zip

JavaScript
recommend-type

手机应用源码新浪微博Android客户端.rar

手机应用源码新浪微博Android客户端.rar
recommend-type

俄罗斯方块项目【尚学堂·百战程序员】.zip

# 俄罗斯方块项目【尚学堂·百战程序员】 俄罗斯方块是一款经典的益智游戏,最早由俄罗斯程序员阿列克谢·帕基特诺夫于1984年开发。本项目基于【尚学堂·百战程序员】的课程内容,详细介绍如何使用JavaScript、HTML5和CSS3从零开始开发一个完整的俄罗斯方块游戏。该项目旨在帮助学习者掌握前端开发的基础知识和技能,提升编程能力。 ## 项目概述 本项目实现了经典的俄罗斯方块游戏,主要包括以下功能模块: ### 1. 游戏界面 游戏界面采用HTML5的Canvas元素进行绘制,使用CSS3进行样式设计。界面包括游戏区域、得分显示、下一个方块预览和控制按钮。通过合理的布局和美观的设计,为玩家提供良好的游戏体验。 ### 2. 方块生成与控制 游戏随机生成不同形状的方块(I、O、T、L、J、S、Z),玩家可以通过键盘控制方块的移动和旋转。具体操作包括: - 左移:按左箭头键。 - 右移:按右箭头键。 - 下移:按下箭头键。 - 旋转:按上箭头键。 ### 3. 方块下落与碰撞检测 方块自动从上到下逐行下落,速度逐渐加快。通过碰撞检测算法,判断方块是否与其他方块或底部边界
recommend-type

如何打造一个新品牌tbb.pptx

如何打造一个新品牌tbb.pptx
recommend-type

node-v14.2.0-headers.tar.xz

Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

可见光定位LED及其供电硬件具体型号,广角镜头和探测器,实验设计具体流程步骤,

1. 可见光定位LED型号:一般可使用5mm或3mm的普通白色LED,也可以选择专门用于定位的LED,例如OSRAM公司的SFH 4715AS或Vishay公司的VLMU3500-385-120。 2. 供电硬件型号:可以使用常见的直流电源供电,也可以选择专门的LED驱动器,例如Meanwell公司的ELG-75-C或ELG-150-C系列。 3. 广角镜头和探测器型号:一般可采用广角透镜和CMOS摄像头或光电二极管探测器,例如Omron公司的B5W-LA或Murata公司的IRS-B210ST01。 4. 实验设计流程步骤: 1)确定实验目的和研究对象,例如车辆或机器人的定位和导航。
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。