您的位置:首页 > 理论基础 > 数据结构算法

数据结构C语言之线性表简单实现

2013-02-28 09:20 309 查看
#include "stdafx.h"

#include<stdio.h>

#include<math.h>

#include<stdlib.h>

#define LIST_SIZE 100

//定义线性表结构

typedef struct{

int *element;

int length;

int list_size;

}Sqlist;

int _tmain(int argc, _TCHAR* argv[])

{

//初始化线性表

void initList(Sqlist &L);

//向线性表某一位置插入元素

void InsertList(Sqlist &L,int i,int e);

//输出线性表

void displayList(Sqlist &L);

//删除线性表中某一位置元素,用e返回删除元素的值

void DeleteList(Sqlist &L,int i,int &e);

//查找线性表中某一位置的元素

bool FindList(Sqlist &L,int i,int &e);

Sqlist list;

initList(list);

for(int j=1;j<=10;j++)

InsertList(list,j,j+1);

displayList(list);

int e;

DeleteList(list,3,e);

printf("%d\n",e);

displayList(list);

return 0;

}

void initList(Sqlist &L)

{

L.element=(int*)malloc(LIST_SIZE *sizeof(int));

if(L.element==NULL)

{

printf("初始化线性表失败!\n");

return ;

}

L.length=0;

L.list_size=0;

}

void InsertList(Sqlist &L,int i,int e)

{

if(i<0||i>L.length+1)

return ;

if(L.list_size==LIST_SIZE)

return ;

L.element[i-1]=e;

for(int j=i;j<L.length-j+1;j++)

L.element[j+1]=L.element[j];

L.length++;

L.list_size++;

}

void DeleteList(Sqlist &L,int i,int &e)

{

if(i<0||i>L.length+1)

return ;

e=L.element[i-1];

for(int j=i-1;j<=L.length-i+1;j++)

L.element[j]=L.element[j+1];

L.length--;

L.list_size--;

}

void displayList(Sqlist &L)

{

if(L.length==0)

return;

for(int i=0;i<L.length;i++)

printf("%d ",L.element[i]);

printf("\n");

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: