线性表
来源:互联网 发布:three.js加载fbx模型 编辑:程序博客网 时间:2024/06/05 18:26
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<stdbool.h>#define Error -10000struct node{ int *elem; int len;};void InitList(struct node *l){ l->elem=(int *)malloc(sizeof(int)*100); l->len=0; //如果结构体是指针类型的取里面的值就用-> //而不用.}void DestroyList(struct node *l){ free(l->elem); l->len=0;}void ClearList(struct node *l){ l->len=0;}int GetList(struct node *l,int id){ if(id<1||id>l->len) return Error; return l->elem[id-1];}bool ListEmpty(struct node *l){ if(l->len==0) return true; return false;}int ListLength(struct node *l){ return l->len;}int LocateList(struct node *l,int e){ int i; for(i=0;i<l->len;i++) { if(l->elem[i]==e) { return i+1; } } return Error;}int PriorList(struct node *l,int e){ int i; for(i=0;i<l->len;i++) { if(l->elem[i]==e) { if(i>0) { return l->elem[i-1]; } } } return Error;}int NextList(struct node *l,int e){ int i; for(i=0;i<l->len;i++) { if(l->elem[i]==e) { if(i<l->len-1) return l->elem[i+1]; } } return Error;}void ListInsert(struct node *l,int id,int e){ if(id>l->len) { l->elem[l->len++]=e; return ; } if(id<1) id=1; int i; for(i=l->len-1;i>=id-1;i--) { l->elem[i+1]=l->elem[i]; } l->elem[id-1]=e; l->len++;}void DeleteList(struct node *l,int id){ if(id<1||id>l->len) return ; int i; for(i=id-1;i<l->len-1;i++) { l->elem[i]=l->elem[i+1]; } l->len--;}void DisplayList(struct node *l){ int i; for(i=0;i<l->len;i++) printf("%d ",l->elem[i]); printf("\n");}int main(){ struct node list; InitList(&list); ListInsert(&list,3,5); ListInsert(&list,1,4); ListInsert(&list,1,3); ListInsert(&list,1,2); return 0;}
0 0
- 线性表--线性存储
- 线性表 线性结构
- 线性表
- 线性表
- 线性表
- 线性表
- 线性表
- 线性表
- 线性表
- 线性表
- 线性表
- 线性表
- 线性表
- 线性表
- 线性表
- 线性表
- 线性表
- 线性表
- C#课后习题---消息对话框实验
- BestCoder Round #69 Baby Ming and Weight lifting
- Android Studio的常用快捷键
- 《你好哇,程序员》—教你如何成为一名牛X的程序员
- 【VS开发】VC++ 获取系统时间、程序运行时间(精确到秒,毫秒)的五种方法
- 线性表
- C经典 使用选择排序排列字符串数组
- 世界经济考题与考点
- redis主从不同步问题处理
- 两个JFramen之间的通信
- 【驱动笔记14】初步认识MDL
- canvas学习绘制图片和添加图片等等一
- CSS3滤镜-水平和垂直翻转图片
- 数组指针和指针数组的区别