用数组实现链表
来源:互联网 发布:python 数据可视化js 编辑:程序博客网 时间:2024/06/07 01:20
/*
============================================================================
Name : Test.c
Author :
Version :
Copyright : Your copyright notice
Description : Hello World in C, Ansi-style
============================================================================
*/
#include <stdio.h>
#include <stdlib.h>
typedef struct alist *List;
typedef struct alist {
int n;
int maxsize;
ListItem *table;
}List;
struct listItem{
char name[10];
double price;
}ListItem;
List ListInit(int size);
int ListEmpty(List L);
int ListLength(List L);
int ListLocate(ListItem x,List L);
ListItem ListRetrieve(int k,List L);
void ListInsert(int k,ListItem x,List L );
return 0;
}
List ListInit(int size){
List L=mallloc(sizeof( *L));
L->table=malloc(size* sizeof(ListItem));
L->maxsize=size;
L->n=0;
return L;
}
int ListEmpty(List L){
return L->n==0;
}
int ListLength(List L){
return L->n;
}
int ListLocate(ListItem x,List L){
int i;
for(i=0;i<L->n;i++)
if(L->table[i]==x)
return ++i;
return 0;
}
ListItem ListRetrieve(int k,List L){
if(k<1 || k>L->n)
Error("out of bounds");
return L->table[k-1];
}
void ListInsert(int k,ListItem x,List L ){
int i;
if(k<0 || k>L->n)
Error("out of bounds");
if(L->n==L->maxsize)
Error("out of memory");
for(i=L->n-1;i>=k;i--)
L->table[i+1]=L->table[i];
L->table[k]=x;
L->n++;
}
ListItem ListDelete(int k,List L){
int i;
ListItem x;
if(k<1 || k>L->n)Error("out of bounds");
x=L->table[k-1];
for( i=k;i<L->n;i++) L->table[i-1]=L->table[i];
L->n--;
return x;
}
============================================================================
Name : Test.c
Author :
Version :
Copyright : Your copyright notice
Description : Hello World in C, Ansi-style
============================================================================
*/
#include <stdio.h>
#include <stdlib.h>
typedef struct alist *List;
typedef struct alist {
int n;
int maxsize;
ListItem *table;
}List;
struct listItem{
char name[10];
double price;
}ListItem;
List ListInit(int size);
int ListEmpty(List L);
int ListLength(List L);
int ListLocate(ListItem x,List L);
ListItem ListRetrieve(int k,List L);
void ListInsert(int k,ListItem x,List L );
ListItem ListDelete(int k,List L);
return 0;
}
List ListInit(int size){
List L=mallloc(sizeof( *L));
L->table=malloc(size* sizeof(ListItem));
L->maxsize=size;
L->n=0;
return L;
}
int ListEmpty(List L){
return L->n==0;
}
int ListLength(List L){
return L->n;
}
int ListLocate(ListItem x,List L){
int i;
for(i=0;i<L->n;i++)
if(L->table[i]==x)
return ++i;
return 0;
}
ListItem ListRetrieve(int k,List L){
if(k<1 || k>L->n)
Error("out of bounds");
return L->table[k-1];
}
void ListInsert(int k,ListItem x,List L ){
int i;
if(k<0 || k>L->n)
Error("out of bounds");
if(L->n==L->maxsize)
Error("out of memory");
for(i=L->n-1;i>=k;i--)
L->table[i+1]=L->table[i];
L->table[k]=x;
L->n++;
}
ListItem ListDelete(int k,List L){
int i;
ListItem x;
if(k<1 || k>L->n)Error("out of bounds");
x=L->table[k-1];
for( i=k;i<L->n;i++) L->table[i-1]=L->table[i];
L->n--;
return x;
}
0 0
- 用数组实现链表
- 用数组实现链表
- 用数组实现链表(C++)
- 用数组实现链表的好处
- 数组去实现链表
- 使用数组实现链表
- 用数组实现线性表
- 用数组实现线性表
- 用数组实现邻接表
- 用数组实现线性表
- 用数组实现线性表
- 用数组实现邻接表
- Java栈实现:数组实现和链表实现
- C++实现队列--数组实现和链表实现
- C++实现队列--数组实现和链表实现
- 分别用数组和链表实现堆栈(C语言版)
- C++用数组和链表分别实现Stack
- C++用数组和链表分别实现Queue
- coco2d-x单例的实现
- php字符串操作
- 短信-选择-联系人
- Qt 常用类 (10)—— QDialog
- acdream 1200 Jump! Jump! Jump! 概率dp+高斯消元
- 用数组实现链表
- Qt 常用类 (11)—— QLabel
- 信孚观察 9.9 哈佛教育的魅力
- USACO Barn Repair
- 解决跨域请求问题
- VoIP全面详解:
- Qt 常有类 (12)—— QAbstractButton
- ZOJ 3811 Untrusted Patrol(BFS)
- Qt 常用类(13)—— QPushButton/(14)—— QCheckBox