c语言学习之顺序表操作



//seqlist.h

#ifndef _SEQLIST_H_

#define _SEQLIST_H_

#define MAXSIZE  100

typedef struct

{

int listLen;  //节点数量

DATA_T  dataList[MAXSIZE+1];

}seqListType;

/* 初始化顺序表 */

void seqlist_init(seqListType *sl);

/* 返回顺序表的元素数量 */

int seqlist_length(seqListType *sl);

/* 向顺序表中添加元素 */

int seqlist_add(seqListType *sl,DATA data);

/* 向顺序表中插入元素 */

int seqlist_insert(seqListType *sl,int n,DATA data);

/* 向顺序表中删除元素 */

int seqlist_delete(seqListType *sl,int n);

/* 根据序号返回元素 */

DATA *seqlist_find_by_num(seqListType *sl,int n);

/* 按关键字查找 */

int seqlist_find_by_cont(seqListType *sl,int *key);

/* 遍历顺序表中的内容 */

int seqlist_all(seqListType *sl);

#endif

//seqlist.c

#include <stdio.h>

void seqlist_init(seqListType *sl)

{

sl->listLen = 0;

}

int seqlist_length(seqListType *sl)

{

return sl->listLen;

}

int seqlist_add(seqListType *sl,DATA data)

{

if(sl->listLen >= MAXSIZE)

{

printf("seqlist is full,can‘t add!\n");

return -1;

}

else

{

sl->dataList[++sl->listLen] = data;

}

return 0;

}

int seqlist_insert(seqListType *sl,int n,DATA data)

{

int i = 0;

if(sl->listLen >= MAXSIZE)

{

printf("seqlist is full,can‘t insert!\n");

return -1;

}

for(i=sl->listLen;i>=n;i--)

{

sl->dataList[i+1] = sl->dataList[i];

}

sl->dataList[n] = data;

sl->listLen++;

return 0;

}

int seqlist_delete(seqListType *sl,int n)

{

int i = 0;

if(sl->listLen == 0)

{

printf("listLen is null\n");

return -1;

}

if(n>(sl->listLen))

{

printf("the element can‘t find!\n");

return -1;

}

for(i=n;i<(sl->listLen);i++)

{

sl->dataList[i] = sl->dataList[i+1];

}

sl->listLen--;

return 0;

}

DATA *seqlist_find_by_num(seqListType *sl,int n)

{

if((n<1) || (n>(sl->listLen)))

{

printf("the element can‘t find!\n");

return NULL;

}

return &(sl->dataList[n]);

}

int seqlist_find_by_cont(seqListType *sl,char *key)

{

int i = 0;

for(i = 1;i<=(sl->listLen);i++)

{

if(strcmp(sl->dataList[i].key,key) == 0)

{

return i;

}

}

return 0;

}

时间: 2024-10-12 10:01:21

c语言学习之顺序表操作的相关文章

C语言学习笔记-顺序表

#include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include "conio.h" #define ERROR 0 #define OK 1 #define MAXSIZE 10 typedef int ElemType; typedef struct{ ElemType elem [MAXSIZE]; int last; }SeqList; /*打印顺序表*/ void

顺序表操作补充(查找方法增加)

顺序表操作补充 二分查找 a.非递归方法实现二分查找 1 //[] 2 int BinarySearch(SeqList *pSeq, ElemType x) 3 { 4 assert(pSeq); 5 int left = 0; 6 int right = pSeq->size - 1; 7 while(left<=right) 8 { 9 int cur = left+(right-left)/2; 10 if(pSeq->array[cur] == x) 11 { 12 retur

Perl语言学习笔记 13 目标操作

1.改变目录 chdir "/etc" or die "can't chdir to '/etc'!\n"; 省略参数会回到用户主目录,与cd效果一样: 2.文件名通配 my @all_files = glob "*"; #不包括以点号开头的文件 my @pm_files = glob "*.pm"; 一次匹配多种模式,用空格隔开:my @files = ".* *"; #可以匹配所有的文件,包括以点号开头

6-2 顺序表操作集

6-2 顺序表操作集(20 分) 本题要求实现顺序表的操作集. 函数接口定义: List MakeEmpty(); Position Find( List L, ElementType X ); bool Insert( List L, ElementType X, Position P ); bool Delete( List L, Position P ); 其中List结构定义如下: typedef int Position; typedef struct LNode *List; str

6-2 顺序表操作集(20 分)

6-2 顺序表操作集(20 分) 本题要求实现顺序表的操作集. 函数接口定义: List MakeEmpty(); Position Find( List L, ElementType X ); bool Insert( List L, ElementType X, Position P ); bool Delete( List L, Position P ); 其中List结构定义如下: typedef int Position; typedef struct LNode *List; str

c语言描述的顺序表实现

//顺序表的实现:(分配一段连续地址给顺序表,像数组一样去操作) #include<stdio.h> #include<stdlib.h> #define OK 1 #define ERROR 0 #define LIST_INIT_SIZE 100 #define INCREMENT 10 typedef int ElemType; typedef struct{ ElemType *elem;//数组指针代表存储基址 int length;//当前顺序表长度 int lists

C++ 数据结构学习一(顺序表)

//sequentiallist.h 顺序表模板类 #ifndef SEQUENTIAL_LIST_HXX#define SEQUENTIAL_LIST_HXX using std::cout; using std::endl; const int MaxSize=100; //顺序表数组最大值 template<class T>class SeqList //定义模板类SeqList(顺序表){ public: SeqList() { length=0; } //无参构造函数,建立一个空的顺

【C语言】静态顺序表和动态顺序表的实现

静态顺序表 定义一张顺序表也就是在内存中开辟一段连续的存储空间,并给它一个名字进行标识.只有定义了一个顺序表,才能利用该顺序表存放数据元素,也才能对该顺序表进行各种操作. 有两种定义顺序表的方法:一是静态地定义一张顺序表:二是动态地生成一张顺序表. 静态地定义一张顺序表的方法与定义一个数组的方法类似.可以描述如下: #define MAX_SIZE 100 typedef int DataType; typedef struct SeqList { DataType array[MAX_SIZE

c语言:【顺序表】静态顺序表的头插、头删

#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> #include<assert.h> #include<string.h> #define MAXSIZE 1000 typedef int DateType; typedef struct SeqList {     DateType arr[MAXSIZE];     size_t size; }SeqList;