#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 使用redis锁限制并发访问类

    1.并发访问限制问题 对于一些需要限制同一个用户并发访问的场景,如果用户并发请求多次,而服务器处理没有加锁限制,用户则可以多次请求成功. 例如换领优惠券,如果用户同一时间并发提交换领码,在没有加锁限制 ...

  2. 【Java】嵌套For循环性能优化案例

    参考资料:http://cgs1999.iteye.com/blog/1596671 1 案例描述 某日,在JavaEye上看到一道面试题,题目是这样的:请对以下的代码进行优化 for (int i  ...

  3. Frog Jump

    A frog is crossing a river. The river is divided into x units and at each unit there may or may not ...

  4. poj 1611(并查集)

    http://poj.org/problem?id=1611 题意:有个学生感染病毒了,只要是和这个学生接触过的人都会感染,而和这些被感染者接触的人,也会被感染,现在给定你一些协会的人数,以及所在学生 ...

  5. Javascript之setTimeout

    参考:http://codethoughts.info/javascript/2015/07/06/javascript-callbacks/

  6. c++ macro

     C++ Code  12345678910111213141516171819202122232425262728293031   /* version: 1.0 author: hellogise ...

  7. HTML DOM scale() 方法

    语法 scale(sx, sy) 参数 参数 描述 sx, sy 水平和垂直的缩放因子. 描述 scale() 方法为画布的当前变换矩阵添加一个缩放变换.缩放通过独立的水平和垂直缩放因子来完成.例如, ...

  8. AIX系统的环境变量设置

    AIX系统的环境变量设置 用户环境的定义是通过设置环境变量来实现的.AIX系统主要使用两大类profile文件来定义用户环境.一类是用来为所有用户定制环境,另一类是为个人定义自己的环境. 登录时,sh ...

  9. 【python】f.write()写入中文出错解决办法

    一个出错的例子 #coding:utf-8 s = u'中文' f = open("test.txt","w") f.write(s) f.close() 原因 ...

  10. 基于SSH2的OA项目1.1_20161207_业务开发

    1.1建立用户的pojo模型 建立user.java package org.guangsoft.pojo; import java.util.HashSet; import java.util.Se ...