順序線性表

來源:互聯網
上載者:User

 

#include <stdio.h>  

#include "SqList.h"

int main(void)
{
int num = 0;
char e;
SqList L;

InitList(&L);

//插入元素
InsElem(&L, 'a', 1);
InsElem(&L, 'b', 2);
InsElem(&L, 'c', 3);
InsElem(&L, 'd', 4);
InsElem(&L, 'e', 5);
InsElem(&L, 'f', 6);
InsElem(&L, 'g', 7);
InsElem(&L, 'h', 8);
InsElem(&L, 'i', 9);

printf("線性表:");
DispList(L);
printf("長度:");
printf("%d", GetLength(L));
printf("/n");

num = 3;
GetElem(L, num, &e);
printf("第%d個元素:%c/n",num, e);

e = 'd';
printf("元素%c是第%d個元素/n", e, Locate(L, e));

num = 4;
printf("刪除第%d個元素/n", num);
DelElem(&L, num);
printf("線性表:");
DispList(L);
printf("長度:");
printf("%d", GetLength(L));
printf("/n");



return 0;
}


[cpp] view plaincopyprint?
#ifndef SQLIST
#define SQLIST

#define MAX_SIZE 100

typedef struct{
char data[MAX_SIZE];
int length;
}SqList;

extern void InitList(SqList *L); //初始化線性表
extern int GetLength(SqList L); //求線性表的長度
extern int GetElem(SqList L, int num, char *e); //求線性表中第i個元素
extern int Locate(SqList L, char x); //按值尋找元素
extern int InsElem(SqList *L, char x, int num); //插入元素
extern int DelElem(SqList *L, int num); //刪除元素
extern void DispList(SqList L); //輸出元素值



#endif

[cpp] view plaincopyprint?
#include "SqList.h"

/*********************************************************
** 函數名:void InitList(SqList *L)
** 功能: 初始化線性表
** 描述: 長度初始化為0
** 作者: 龐輝
**********************************************************/

void InitList(SqList *L)
{
L->length = 0;
}

/*********************************************************
** 函數名:int GetLength(SqList L)
** 功能: 求線性表的長度
** 描述: 無
** 作者: 龐輝
**********************************************************/

int GetLength(SqList L)
{
return L.length;
}


/*********************************************************
** 函數名:int GetElem(SqList L, int i, char *e)
** 功能: 求線性表中第i個元素
** 描述: 錯誤則返回-1, 若找到則返回0,該元素值存入參數e中
** 作者: 龐輝
**********************************************************/

int GetElem(SqList L, int num, char *e)
{
if(num < 1 || num > L.length)
{
return -1;
}
else
{
*e = L.data[num - 1];
return 0;
}
}

/*********************************************************
** 函數名:int Locate(SqList L, char x)
** 功能: 按值尋找元素
** 描述: 錯誤則返回-1, 若找到則返回位置(從1開始計量)
** 作者: 龐輝
**********************************************************/

int Locate(SqList L, char x)
{
int i = 0;

for(i = 0; i < L.length; i++)
{
if(L.data[i] == x)
{
return i + 1;
}
}

return -1;
}

/*********************************************************
** 函數名:int InsElem(SqList *L, char x, int num)
** 功能: 在某位置插入元素
** 描述: 錯誤則返回-1, 若成功則返回0
** 作者: 龐輝
**********************************************************/

int InsElem(SqList *L, char x, int num)
{
int i = 0;

if((num < 1 || num > L->length + 1) || (L->length == MAX_SIZE))
{
return -1;
}
else
{
for(i = L->length - 1; i > num - 2; i--)
{
L->data[i + 1] = L->data[i];
}

L->data[i + 1] = x;

L->length++;

return 0;
}
}

/*********************************************************
** 函數名:int DelElem(SqList *L, int num)
** 功能: 在某位置刪除元素
** 描述: 錯誤則返回-1, 若成功則返回0
** 作者: 龐輝
**********************************************************/

int DelElem(SqList *L, int num)
{
int i = 0;

if(num < 1 || num > L->length)
{
return -1;
}
else
{
for(i = num; i < L->length; i++)
{
L->data[i - 1] = L->data[i];
}

L->length--;
}
}

/*********************************************************
** 函數名:void DispList(SqList L)
** 功能: 輸出元素值
** 描述: 無
** 作者: 龐輝
**********************************************************/

void DispList(SqList L)
{
int i = 0;

for(i = 0; i < L.length; i++)
{
printf("%c ", L.data[i]);
}

printf("/n");
}

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.