順序表--------------線性表的第一個兒子
這個兒子的結構體定義:
typedef int ElemType;//取別名 typedef struct link{ ElemType * head;//head是一個陣列指標,不太清楚的同學,可以百度一下 ElemType length; ElemType size; }sqlink;//取別名
順序表的初始化:
#include<stdio.h> #include<stdlib.h> #define MAX_SIZE 20 typedef int ElemType; typedef struct link{ ElemType * head; ElemType length; ElemType 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; ElemType length; ElemType 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; }
剩下的過兩天再寫,如果有不懂的地方,可以留言!