#include <stdio.h>
/*
* 顺序表最多输入N个数
*/
#define N 10
#define OK 1
#define ERROR -1 struct sequeuelist {
int *elem;
int length;
int listsize;
};
/*
* 因为l是指针,所以请注意->的使用,而不是L.
*/
int sequeuelist_init(struct sequeuelist *l) {
l->elem = (int *)malloc(N * sizeof(int));
if (!l->elem) {
return ERROR;
}
l->length = ;/* 空表长度为0 */
l->listsize = N;/* 初始存储容量 */
return OK;
}
/*
* 插入函数,在实验时,可暂不考虑空间不足的情况
*/
int sequeuelist_insert(struct sequeuelist *l, int i, int e) {
int *q = NULL;
int *p = NULL;
q = &(l->elem[i-]);
for (p = &(l->elem[l->length]); p > q; --p) {
*(p+) = *p;
}
*q = e;
l->length++;
return OK;
}
/*
* 输出顺序表所有结点的值
*/
int sequeuelist_print(struct sequeuelist *l) { int *start = NULL;
int *stop = NULL; stop = &(l->elem[l->length]);
for (start = &(l->elem[]); start< stop; start++) {
printf("%d\t", *start);
}
printf("\n");
} /*
* 顺序表l,从第i各元素起,连续删除k个元素。
*/
int sequeuelist_delete_ith_to_kth(struct sequeuelist *l, int i, int k)
{
int *p = NULL;/*如果p为指向struct squeue的指针类型,则p++后,p增加的是struct squeue类型成员的长度*/
int *q = NULL;
int *r = NULL;
int length_temp = l->length-;
p = &(l->elem[i-]);
r = &(l->elem[length_temp]);
for (q = &(l->elem[i+k-]); q <= &(l->elem[length_temp]); /*q++*/) {
*(p++) = *q;
q++;
l->length--;
} return OK;
}
/*
*
*/
int main(void) {
int i;
int e;
int n = ;
struct sequeuelist *l = NULL;
struct sequeuelist M;
l = &M; sequeuelist_init(l);
printf("Please input n numbers:\n");
/*
* 由于线性表的下标是从0开始的
*/
for (i = ; i <= n; i++) {/* 创建初始的顺序表,包含n个数 */
scanf("%d", &e);
sequeuelist_insert(l, i, e);
}
sequeuelist_print(l);/*输出各结点的值*/
///*
//sequeuelist_insert(l, 3, 999);/*在第三个元素前插入999*/
//printf("After insert:\n");
//*/
//sequeuelist_print(M);/*输出插入后各结点的值*/
sequeuelist_delete_ith_to_kth(l, , );
sequeuelist_print(l);
return ;
}

顺序表C语言版的更多相关文章

  1. 数据结构与算法之顺序表C语言实现

    顺序表等相关概念请自行查阅资料,这里主要是实现. 注: 1.顺序表C语言实现: 2.按较简单的方式实现,主要帮助理解,可在此基础上修改,更加完善: 3.提供几个简单函数,可自行添加功能: 4.可用C+ ...

  2. 数据结构:顺序表(python版)

    顺序表python版的实现(部分功能未实现) #!/usr/bin/env python # -*- coding:utf-8 -*- class SeqList(object): def __ini ...

  3. 线性表之顺序表(C语言实现)

    线性表是从数据元素的逻辑结构上定义的. 这种数据元素的逻辑结构的特征如下: 1.除开第一个和最后一个元素之外.所有元素都有一个前驱元素和后继元素. 2.第一个元素无前驱元素,但有后继元素. 3.最后一 ...

  4. 顺序表-Go语言实现

    简单理解就是数组: 优缺点及使用场景 优点: 随机访问,在O(1)时间内找到第i个元素: 数据表中的数据是连续存放的,因此只要知道数据表中第一个元素的地址,那么后面的数据元素的地址就可以马上算出来. ...

  5. 【小白成长撸】--顺序栈(C语言版)

    // 顺序栈.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h"//test1.0--栈表仅限Int类型 #include <stdio. ...

  6. 顺序表-C语言实现

    顺序存储线性表的结构体: #define MAXSIZE 100 //数组最大长度 typedef int ElemType; //元素类型 typedef struct //定义线性表结构体 { E ...

  7. 数据结构C语言版--动态顺序表的基本功能实现(二)

    /* * 若各个方法结构体变量参数为: &L(即地址符加变量)则结构体变量访问结构成员变量时使用"." * 若为:*L(即取地址符加变量)则结构体变量访问结构体成员变量使用 ...

  8. 数据结构C语言版干货------->线性表之顺序表

    一:头文件定义 /*************************************************************************** *项目 数据结构 *概要 逻辑 ...

  9. 顺序表的基本方法实现C语言版

    顺序表--------------线性表的第一个儿子 这个儿子的结构体定义: typedef int ElemType;//取别名 typedef struct link{ ElemType * he ...

随机推荐

  1. PHP 面向对象:抽象类继承抽象类

    抽象类继承另外一个抽象类时,不用重写其中的抽象方法.抽象类中,不能重写抽象父类的抽象方法.这样的用法,可以理解为对抽象类的扩展. 下面的例子,演示了一个抽象类继承自另外一个抽象类时,不需要重写其中的抽 ...

  2. Intellij IDEA + Jrebel

    Jrebel java热部署神器! 如果你没用过这里一句白话说明,就是在修改了class等源文件后无需重启web容器(如Tomcat)直接生效! 找到以后 安装... 然后 激活地址 :http:// ...

  3. 【GoLang】GoLang 的流程与函数

    003.GO流程与函数 1 概述 1.1 Go中流程控制分三大类:条件判断,循环控制和无条件跳转 2 流程 2.1 if 2.1.1 if条件判断语句中不需要括号 2.1.2 条件判断语句里面允许声明 ...

  4. 【leetcode】N-Queens II

    N-Queens II Follow up for N-Queens problem. Now, instead outputting board configurations, return the ...

  5. linux /usr/bin/ld cannot find 解决

    问题: 在linux环境编译应用程式或lib的source code时常常会出现如下的错误讯息: /usr/bin/ld: cannot find -lxxx 这些讯息会随着编译不同类型的source ...

  6. ffmpeg-20160508-git-bin-v2

    ESC 退出 0 进度条开关 1 屏幕原始大小 2 屏幕1/2大小 3 屏幕1/3大小 4 屏幕1/4大小 S 下一帧 [ -2秒 ] +2秒 ; -1秒 ' +1秒 下一个帧 -> -5秒 f ...

  7. Games:取石子游戏(POJ 1067)

    取石子游戏 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 37662   Accepted: 12594 Descripti ...

  8. hdu 1556.Color the ball 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1556 题目意思:有 n 个气球从左到右排成一排,编号依次为1,2,3,...,n.给出 n 对 a, ...

  9. 将xml文件作为一个小的数据库,进行学生的增删改查

    1.xml文件: <?xml version="1.0" encoding="UTF-8"?><Students> <studen ...

  10. eclipse下使用git下载和上传项目

    简单配置,填入我们的用户名和邮箱 >>Preferences>Team>Git>Configuration 点击Add Entry,在弹出框里面输入key和value的值 ...