顺序表的基本方法实现C语言版
顺序表--------------线性表的第一个儿子
这个儿子的结构体定义:
typedef int ElemType;//取别名 typedef struct link{ ElemType * head;//head是一个数组指针,不太清楚的同学,可以百度一下 int length; int size; }sqlink;//取别名
顺序表的初始化:
#include<stdio.h> #include<stdlib.h> #define MAX_SIZE 20 typedef int ElemType; typedef struct link{ ElemType * head; int length; int size; }sqlink; sqlink InitLink();//方法声明 int main(){ sqlink s; s = InitLink(); for(int i = 0; i < 10; i++){ s.head[i] = i; } printf("%d",s.head[6]); } sqlink InitLink(){//方法实现 sqlink s; s.head = (ElemType*)malloc(MAX_SIZE*sizeof(ElemType));//在内存中动态创建 if(!s.head)//如果创建不成功,就退出 exit(0); s.length = 0; s.size = MAX_SIZE; return s; }
顺序表的插入:
#include<stdio.h> #include<stdlib.h> #define MAX_SIZE 20 typedef int ElemType; typedef struct link{ ElemType * head; int length; int size; }sqlink; sqlink InitLink();//方法声明 sqlink InsertLink(sqlink s ,int i , ElemType e); int main(){ sqlink s; s = InitLink(); for(int i = 0; i < 10; i++){ s.head[i] = i; } printf("%d\n",s.head[6]); s = InsertLink(s,7,99999); printf("%d\n",s.head[6]); printf("%d\n",s.head[7]); } sqlink InitLink(){//方法实现 sqlink s; s.head = (ElemType*)malloc(MAX_SIZE*sizeof(ElemType)); if(!s.head) exit(0); s.length = 0; s.size = MAX_SIZE; return s; } sqlink InsertLink(sqlink s ,int i , ElemType e){ if(i<1 && i>MAX_SIZE+1) exit(0); if(s.length == MAX_SIZE) exit(0); for(int j = s.length-1;j >= i-1;j--){ s.head[j+1] = s.head[j] ; } s.head[i-1] = e; return s; }
剩下的过两天再写,如果有不懂的地方,可以留言!
相关推荐
hanyujianke 2020-08-18
xhao 2020-05-10
xhao 2020-05-05
OldBowl 2020-03-28
学习备忘录 2020-01-25
seekerhit 2020-01-23
niushao 2020-01-12
hanyujianke 2020-01-12
alicelmx 2020-01-05
roseying 2019-12-09
hanyujianke 2019-10-24
haokele 2019-09-03
TTdreamloong 2011-12-13
燕返 2019-06-30