线性表中有n个元素,每个元素是一个字符,现存于向量R[n]中,试写一算法,使R中字符按字母字符、数字字符和其他字符的顺序排列。要求利用原来的存储空间,元素移动次数最小。
线性表中有n个元素,每个元素是一个字符,现存于向量R[n]中,试写一算法,使R中字符按字母字符、数字字符和其他字符的顺序排列。要求利用原来的存储空间,元素移动次数最小。
int fch(char c){ //判断字符是否为字母字符 if((c>='a'&&c<='z')||(c>='A'&&c<='Z')){return 1;}else return 0;
}
int fnum(char c){ //判断字符是否为数字字符 if(c>='0'&&c<='9'){return 1;}else return 0;
}
void Sort_Letter(PSeqList R){int low=0;int high=R->length-1;int temp; while(low<high){while((low<high)&&fch(R->data[low])){ //找到第一个非字母字符 low++;}while((low<high)&&!(fch(R->data[high]))){ //找到第一个字母字符 high--;}if(low<high){ //交换 temp=R->data[low];R->data[low]=R->data[high];R->data[high]=temp;}} //while循环结束时,字母字符全在表的前面,(low之前全是字母字符) ,其他字符和数字字符全在表后 high=R->length-1;while(low<high){ //处理后面的数字字符和其他字符 while((low<high)&&fnum (R->data[low])){ //找到第一个非数字字符 low++;}while((low<high)&&!(fnum(R->data[high]))){ //找到第一个数字字符 high--;}if(low<high){ //交换 temp=R->data[low];R->data[low]=R->data[high];R->data[high]=temp;}}
}
线性表中有n个元素,每个元素是一个字符,现存于向量R[n]中,试写一算法,使R中字符按字母字符、数字字符和其他字符的顺序排列。要求利用原来的存储空间,元素移动次数最小。相关推荐
- 设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。
题目要求:设顺序表va中的数据元素递增有序.试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性. 代码实现: void Insert(SqList *va,int x) {int i;if( ...
- CQUPT数据结构作业2.1:设有一如下定义的SqList类型的顺序表,将其中的数据元素按递增顺序排列.试写一算法,将x插入到顺序表的适当位置,以保持该表的有序性
加粗样式 2.1设有一如下定义的SqList类型的顺序表,将其中的数据元素按递增顺序排列.试写一算法,将x插入到顺序表的适当位置,以保持该表的有序性; typedef struct{int *elem ...
- 已知带头结点的动态单链表L中的结点是按整数值递增排列的,试写一算法将值x为的结点插入到表L中,使L仍然有序。
创建链表,main函数中通过while循环找出该插入的位置,插入.应注意L头节点位置的变化,利用一个ptr来记录L的头节点. /*已知带头结点的动态单链表L中的结点是按整数值递增排列的,试写一算法将值 ...
- 【数据结构 C描述】有两个整数集合 A 和 B 分别用两个线性表 LA 和 LB 表示,求:一个新的集合A=A∪B,A仍然为纯集合,线性表采用链式存储方式。【单链表】
这是我的作业题,作业写完后再附到博客中,可能代码写得很烂.虽然是C语言写的,但是我在其中加入了C++的写法,例如cout.我懒得写printf的格式控制符,所以用cout来输出内容,这样我感觉简便多了 ...
- C语言线性表怎么输入字符串,用c语言创建一个线性表输入元素求直接后继
#includetypedef struct Node{ int d; struct Node *next; }TNode, *PNode; //创建具有n个结点的链表(结点数据为1-100之间的随机 ...
- 设置顺序表L是个递增的有序表,试写一算法将number插入L中,并使L任是一个有序表。
一.实现算法如下: /*有序顺序表的插入*/ void InsertSqlist(Sqlist *L,Elemtype number) {int i;assert(L->length < ...
- 线性表--算法设计题2.23
设线性表A=(a1,a2--,am),B=(b1,b2--,bn),试写一个按下列规则合并A,B为线性表C的算法,即使得 C=(a1,b1,--am,bm,--bn) 当m<=n时: C=(a ...
- 《数据结构C语言版》——线性表详解,你一定能够看得懂学得会的宝典
哈喽!这里是一只派大鑫,不是派大星.本着基础不牢,地动山摇的学习态度,从基础的C语言语法讲到算法再到更高级的语法及框架的学习.更好地让同样热爱编程(或是应付期末考试 狗头.jpg)的大家能够在学习阶段 ...
- 【数据结构算法】一:线性表
本章介绍线性表中 存储结构不同的 顺序表 和 链表,以及操作受限的 栈 和 队列 . 目录 一.概述 二.顺序表 2.1. 插入元素 2.2. 删除元素 2.3. 特点 三.链表 3.1.线性链表 ...
最新文章
- C++primer习题4.9
- Boost源码剖析之:容器赋值-assign
- 【数学与算法】支持向量机、线性判别 详细数学原理
- java 多线程同步问题_Java多线程同步问题:一个小Demo完全搞懂
- 长语音识别体验_如何为语音体验写作
- java运行时间间隔_Java:安排作业按时间间隔运行
- linux命令创建硬链接,Linux终端命令接口(十一)硬链接与软连接
- CSS 字体风格 font-style属性
- java10个整数反向输出_输入一个整数,实现反转输出,如输入123,输出321。
- 波形发生器设计c语言文件,超低频波形发生器的设计论文(C语言编程) .doc
- 刘晓攀:连滚带爬看完《你的知识需要管理》
- 【情报分享1234】来自海莲花组织的道歉,然后再给你扔了个恶意文档
- BLDC无刷直流电机驱动程序
- 温莎大学的计算机专业,温莎大学的计算机专业
- Spring @Value读取系统环境变量
- 数字化医院PACS影像系统 三维影像后处理技术应用
- 【数据库】Oracle基础命令
- 人社部已发布3个批次38个新职业!热门“风向标”来了,快跟上
- SQL语句 日期 和 时间戳 相互转换
- leetcode765-情侣牵手