线性表List的基本创建
#include <iostream>
using namespace std;
#include <malloc.h>
#include <stdio.h>
#define TURE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define IINFEASIBLE -1
#define OVERFLOW -2
typedef int Status; /*类型名定义用status代替int;Status是返回的状态,程序中的error,ok就是和它对应的!*/
#define LIST_INIT_SIZE 10 //线性表存储空间的初始分配量
#define LISTINCREAMENT 2 //线性表存储空间的分配增量
typedef int ElemType; /*定义ElemType为int类型*/
typedef struct
{ElemType *elem; //存储空间基址int length; //当前长度int listsize;//当前分配的存储容量(以sizeof(ElemType)为单位)
}SqList;Status InitList(SqList &L){
//构造一个新的线性表L。L.elem = (ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!L.elem) exit(OVERFLOW); //存储空间失败L.length = 0; //空表长度为0L.listsize = LIST_INIT_SIZE; //初始存储容量return OK;
}//InitListStatus ListInsert(SqList &L,int i,ElemType e){//在顺序线性表L中第i个位置之前插入新的元素e,i的合法值为1<=i<=ListLength(L)+1;int *newbase,*q,*p;if(i<1 || i>L.length+1) return ERROR;if(L.length>=L.listsize){newbase = (ElemType *)realloc(L.elem,(L.listsize+LISTINCREAMENT)*sizeof(ElemType));if(!newbase)exit(OVERFLOW);//存储分配失败L.elem = newbase; //新基址L.listsize +=LISTINCREAMENT;//增加存储容量}q=L.elem+i-1;//q为插入位置,也可写成&(L.elem[i-1])for(p = &(L.elem[L.length-1]);p>=q;--p)*(p+1) = *p;//插入位置及之后的元素后移*q = e; //插入e++L.length;//表长增1return OK;
}//ListInsertStatus ListDelete(SqList &L,int i,ElemType e){//在顺序表中删除第i个元素,并用e返回其值,i的合法值为1<=i<=ListLengthint *q,*p;if(i<1 || i>L.length) return ERROR;//i值不合法p = &(L.elem[i-1]);//p为被删除位置e = *p;//被删除的元素赋给eq = L.elem + L.length-1;//表尾元素的位置,或写成&L.elem[L.length-1]for(++p;p<=q;++p)//被删除元素之后的元素左移*(p-1)=*p;--L.length;return OK;
}//ListDeleteint LocatElem(SqList L,ElemType e)
{int *p;int i = 1;//i的初值为第一个元素的位序p = L.elem;//p的初值为第一个元素的存储位置while(i<=L.length&&(*p++!=e))++i;if(i<=L.length)return i ;else return 0;
}//LocateElemvoid print (SqList L)
{int i;for(i=0;i<L.length;i++)printf("%d ",L.elem[i]);printf("\n");}int main()
{SqList L;ElemType e;int i,n,t;InitList(L);printf("请输入需要插入元素的个数:\n");scanf("%d",&n);printf("请输入需要插入的元素:\n");for(i=1;i<=n;i++){scanf("%d",&e);ListInsert(L,i,e);}printf("插入之后的表中元素为:\n");print(L);printf("请输入需要删除元素的位置:\n");scanf("%d",&i);t = ListDelete(L,i,e);if(t==ERROR)printf("删除失败!\n");else{printf("已经成功删除元素!\n");printf("删除之后的表中元素为:\n");print(L);}printf("请输入需要查找的元素:\n");scanf("%d",&e);i=LocatElem(L,e);if(i==0)printf("查找失败!");elseprintf("在表中的位置为%d",i);return 0;
}
相关文章:

点点看 只有想不到没有看不到
看了这些好看的图片,不禁也想把自己看到的图片与大家一起分享了![url]http://mm-nn.com.cn/MM[/url]网[url]http://haotupic.cn/[/url]好图片网[url]http://www.picguan.cn/[/url]美女图片馆[url]http://www.nvyoou.cn/[/url]女友网[url]http://www.soft…

二叉树的基本应用知识总结
#include <iostream> using namespace std; #include <malloc.h> #include <stdio.h> #define TURE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define IINFEASIBLE -1 #define OVERFLOW -2#define MAX_TREE_SIZE 100//二叉树的最大结点数 typedef ch…

JS原生选项卡 – 幻灯片效果
1 <!DOCTYPE HTML>2 <html>3 <head>4 <meta charset"utf-8">5 <title>JS实现幻动片选项卡</title>6 </head>7 <style>8 .container{9 text-align:center; 10 width:100%; 11 } 12 13 .ppt{ …

MSSQL 2008里事务的一个问题
今天在试MSSQL2008里的事务,发现如果事务中某条语句的表名错误,就无法用error或try回滚,具体如下:begin tran delete from test where id 5 --正确语句 dealete from testa where id1 4 --表名错误,testa 表…
避免在JSP中写java代码
作者:蜗牛学院CTO李懿老师 自从十年前的taglibs(如JSTL)和EL(表达语言,这些事情)诞生以来,在JSP中使用scriptlet(<% %>这些东西)的确是非常不鼓励的。 小脚本的主…

爱情也许是最忧伤的童话
也许爱情是一部忧伤的童话 惟其遥远与真实 惟其不可触摸与欠缺 方可成就起璀璨与神圣 或许,只有在难得最远的时候, 才能把曾经走过的那段日子 看得最真切、最清楚 放弃一个很爱你的人,并不痛苦 放弃一个你很爱的人,那才痛苦 爱…

Docker最全教程——从理论到实战(六)
Docker最全教程——从理论到实战(六) 原文:Docker最全教程——从理论到实战(六)托管到腾讯云容器服务 托管到腾讯云容器服务,我们的公众号“magiccodes”已经发布了相关的录屏教程,大家可以结合本篇教程一起…

c#中分割字符串的几种方法
第一种方法:打开vs.net新建一个控制台项目。然后在Main()方法下输入下面的程序。 string s"abcdeabcdeabcde"; string[] sArrays.Split(c); foreach(string i in sArray) Console.WriteLine(i.ToString()); 输出下面的结果:ab deab deab de 我们看到了结果…

对相机所看的视角截屏保存为图片
对相机所看的视角截屏保存为图片: 1 using UnityEngine;2 using System.Collections;3 using UnityEngine.UI;4 /// <summary>5 /// 对相机截图6 /// </summary>7 public class Jietu : MonoBehaviour {8 9 public Camera camera; 10 Texture2D…

fsum函数测试以及分析
#include <stdio.h> #include <stdlib.h> #include <string.h>#define BUFSIZE 256//这是一句预定义,定义BUFSIZE的值是100,是缓冲空间的大小,作为数组的。int main(int argc, char *argv[]) //第一个int argc,是记录你输入…

oracle学习总结二(转义字符)
1、oracle 特殊字符 转义关键词: oracle 转义 环境:oracle 9i plsql在plsql里边执行:update userinfo set pageurlmyjsp?page1&pagesize10 where idtest这条sql语句往数据库的pageurl字段放进去了一…

C语言——冒泡法排序应用
#include <stdio.h> #include <stdlib.h> int main()/*有int main 就会有return 0;如果是void main ,就不用加上return 0了 */ {int i,j,temp;/*待会要用到,所以先定义,因为输入的都是整数,所以用int整数型*/int a[10];/*定义一个一维整型数…

2017 Multi-University Training Contest 3 hdu 6063
HDU 6063 思路: AC代码: #include "iostream" #include "string.h" #include "stack" #include "queue" #include "string" #include "vector" #include "set" #include "m…

[学习]GridView 学习集合 -- GridView中使用超链接的技巧
GridView中使用超链接的技巧 数据绑定方式有两种,如下示例: Eval方式 <%# Eval("id") %> Bind方式 <%# Bind("id","~/info.aspx?id{0}") %> 推荐使用第一种方式,…

C# http 性能优化500毫秒到 60 毫秒
来源:https://www.cnblogs.com/hnsongbiao/p/9815808.html 偶然发现 C# 的 HttpRequest 要比 Chrome 请求同一Url 慢好多。C# HttpRequest 要500毫秒 而Chrome 只需要 39ms。 后来 整理 各种方法做了优化 HttpWebRequest request WebRequest.Create(address) as H…

一个计算机高手的成长(转)
这些日子我一直在写一个实时操作系统内核,已有小成了,等写完我会全部公开,希望能 够为国内IT的发展尽自己一份微薄的力量。最近看到很多学生朋友和我当年一样没有方向 ,所以把我的经历写出来与大家共勉,希望能给刚如行…

正则表达式整理
1.特殊字符 ^匹配输入字符串的开始位置$匹配输入字符串的结尾位置( )标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。* 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。匹配前面的子表达式一…

CSS-hover
1. padding:0 10px; 表示上下边距是0,左右边距是10. 2. padding:0 10px 0 10px; 上-右-下-左。(顺时针方向) 3. .pg-header .menu:hover; 表示只要鼠标移动到当前标签上时,就会应用这个下面所定义的样式。 …

Error原生类型
•表示错误对象 –EvalError, URIError, RangeError, etc. •捕获方式: –try { …throw new Error(…) } catch(e) { … } –理论上可以throw出任意对象 •Error对象IE和FireFox公有属性 –message:错误信息Error浏览器特定属性 •IE: –des…

求矩阵两条对角线元素之和
#include <stdio.h> #include <stdlib.h>int main() {int a[3][3];//定义一个二维数组,三行三列,a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2],a[3][0],a[3][1],a[3][2]int i,j,sum0;printf("请输入9个数据给数组赋值:\n");f…

关于Java中各种修饰符与访问修饰符的说明
关于Java中各种修饰符与访问修饰符的说明 类: 访问修饰符 修饰符 class 类名称extends 父类名称 implement 接口名称 (访问修饰符与修饰符的位置可以互换)访问修饰符 名称 说明 备注 public可以被所有类访问(使用࿰…

buffer IO和direct IO
最近在看很多框架,redis,kafka等底层都涉及到文件IO操作的效率问题,所以查了些资料,看到这篇文章讲的比较明白些,贴出来留存。 链接地址: https://www.ibm.com/developerworks/cn/linux/l-cn-directio/转载…

python 列表使用
下面实现的类似于java中的数组: names[-2]表示实现倒数的第2个参数 names[-3,-1]表示实现-3到-1的值不包含-1 增删改查 下面代码实现列表的增删改查功能: 复制copy 深copy:这个可以copy全部的参数列表(一般不用)。 For循环打印列表…

c语言——求单词个数
#include <stdio.h> #include <stdlib.h>int main() {char str[20];//定义一个字符型一维数组,长度为20int i,num;printf("请输入一行英文:\n");//提示语句gets(str);//输入一个字符串给字符数组strnum str[0]! ? 1:0;//? : 是条件运算符…

C# 各种进制之间相互转换 [ZT]
MessageBox.Show(Convert.ToString(12345, 2)); //10进制转换为2进制MessageBox.Show(Convert.ToString(12345, 8)); //10进制转换为8进制MessageBox.Show(Convert.ToString(12345, 16)); //10进制转换为16进制MessageBox.Show(Convert.ToInt32("1100", 2).ToStri…

慕课《深入理解计算机系统》袁林枫老师章节测试1-9
1以下有关冯.诺依曼结构思想的叙述中,错误的是( C )。 A.计算机内部以二进制形式表示指令和数据 B.程序由指令构成,计算机能自动执行程序中一条一条指令 C.指令和数据都放在存储器中,两者在形式上有差别(…

WCF 和 ASP.NET Web API
地址:https://docs.microsoft.com/zh-cn/dotnet/framework/wcf/wcf-and-aspnet-web-api WCF 是 Microsoft 为生成面向服务的应用程序而提供的统一编程模型。 借助这一模型,开发人员可以构建既能跨平台与现有投资集成又能与现有投资交互的安全、可靠的事务…

php中操作mysql的函数库
发现php中的mysql库是一个函数库 而不是一个类库 使用面向过程的形式组织。mysql_affected_rows -- 取得前一次 MySQL 操作所影响的记录行数 mysql_change_user -- 改变活动连接中登录的用户 mysql_client_encoding -- 返回字符集的名称 mysql_close -- 关闭 MySQL 连接 mysq…

Firetruck UVA - 208
DFS并查集 如果只用DFS的话会超时,用并查集剪枝,和起点终点不联通的点就不用跑了 这题有好多人写了博客,但是我觉得我的代码写的比较通俗易懂所以就贴上来了,我觉得我写代码的目标就是让任何人都能看懂,越小白越好&…

MCSE2003学习之三
安装WIN XPXP的系统中,32位的系统最大支持的RAM为4G,而64位的…