#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. struts的学习笔记

    Struts 2是在WebWork2基础发展而来的. 注意:struts 2和struts 1在代码风格上几乎不一样. Struts 2 相比Struts 1的优点: 1.在软件设计上Struts 2 ...

  2. OPCServer Modbus使用和配置

    一,安装KEPware.Enhanced.OPC.DDE.KEPServer.(PLC数据传送给KEPServer,开发的程序用OPCServer读KEPServer) 设置ip地址后面是指的plc站 ...

  3. ACM/ICPC 之 数据结构-线段树+区间离散化(POJ2528)

    这道题用线段树做更方便更新和查询,但是其数据范围很大,因此要将离散化和线段树结合起来,算是一道比较经典的线段树+离散化的例题. 线段树的离散化有很多方法,在这里,我先用一次结点离散化,间接将源左右端点 ...

  4. 3.nodejs权威指南--文件

    1. 文件 1.1 读写整个文件 1.1.1 读 var fs = require('fs'); fs.readFile('./test.txt',function(err,data){ if(err ...

  5. JQuery 鼠标事件简介

    mouseover事件于用户把鼠标从一个元素移动到另外一个元素上时触发,mouseout事件于用户把鼠标移出一个元素时触发. 下面为你详细介绍下jquery中的鼠标事件: (1):click事件:cl ...

  6. LeetCode 263 Ugly Number

    Problem: Write a program to check whether a given number is an ugly number. Ugly numbers are positiv ...

  7. yum Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again

    今天使用yum时出现如上问题,解决办法: 1.编辑:/etc/yum.repos.d/epel.repo 将baseurl的注释取消, mirrorlist注释掉,如图:

  8. September 21st 2016 Week 39th Wednesday

    Don't try so hard, the best things come when you least expect them. 不要着急,最好的总会在最不经意的时候出现. Always tur ...

  9. MAC下GitHub命令操作

    由于GitHub实在太有用了~~ ,各种源代码,开源工程,经常需要下载下来使用和学习,或者自己的代码需要上传之类的,尽管有"GitHub for Mac"工具,但是作为一名程序猿! ...

  10. NYOJ题目845无主之地1

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAskAAAKbCAIAAACIEYBGAAAgAElEQVR4nO3dvXKkPLe38X0Szn0gjv