靜態鍊錶:
結構體變數中包含資料域和游標域
typedef struct node
snode;
靜態鍊錶:
1.陣列的下標為0的元素的游標域存放的是未使用鍊錶的第乙個節點的下標。
2.陣列的最後乙個元素(slist_size-1)存放的是第乙個有資料值得元素的下標。
3.最後乙個元素相當於單鏈表的頭結點。
具體**如下:
//**********===slist.h**********==
#define slist_size 22
typedef int elem_type;
typedef struct node
snode;
typedef struct list
slist,*pslist;
void init(pslist psl);//初始化
static int isfull(pslist psl);
void inserttail(pslist psl,elem_type val);//尾插
void inserthead(pslist psl,elem_type val);
int isempty(pslist psl);
void deletekey(pslist psl,int val);
void show(pslist psl);
void clear(pslist psl);
void destroyed(pslist psl);
//**********===slist.cpp**********=
# include # include "slist.h"
void init(pslist psl)//初始化
int i=0;
for(i;inode[i].cursor = i+1;
} psl->node[i++].cursor = -1;
psl->node[i].cursor=-1;
}static int isfull(pslist psl)
void inserttail(pslist psl,elem_type val)
int index = psl->node[0].cursor;
psl->node[0].cursor = psl->node[index].cursor;
psl->node[index].mdata =val;
psl->node[index].cursor=-1;
int lastindex=slist_size-1;
while(psl->node[lastindex].cursor != -1)
psl->node[lastindex].cursor =index;
}void inserthead(pslist psl,elem_type val)
int index = psl->node[0].cursor;
psl->node[0].cursor = psl->node[index].cursor;
psl->node[index].mdata =val;
psl->node[index].cursor=psl->node[slist_size-1].cursor;
psl->node[slist_size-1].cursor=index;
}int isempty(pslist psl)
void deletekey(pslist psl,int val)
int index = slist_size -1;
int nextindex =psl->node[index].cursor ;
while(nextindex !=-1)
index = nextindex;
nextindex = psl->node[nextindex].cursor;
} if(nextindex == -1)
psl->node[index].cursor = psl->node[nextindex].cursor;
psl->node[nextindex].cursor =psl->node[0].cursor;
psl->node[0].cursor=nextindex;
}void show(pslist psl)
int index = psl->node[slist_size-1].cursor ;
while(index!=-1)
printf("\n");
}void clear(pslist psl)
int i=0;
for(i;inode[i].cursor=i+1;
} psl->node[i++].cursor =-1;
psl->node[i].cursor=-1;
}void destroyed(pslist psl)
//**********====main.cpp*****===
# include "slist.h"
int main()
show(&sl);
deletekey(&sl,4);
for(i;i<20;i++)
show(&sl);
clear(&sl);
destroyed(&sl);
return 0;
}
資料結構鍊錶 靜態鍊錶
1 在這裡我們首先要複習一下鍊錶c語言的定義 這看起來很簡單,但實際上至關重要!data域 存放結點值的資料域。next域 存放結點的直接後繼的位址 位置 的指標域 鏈域 也就是說next域儲存的是乙個位址,這個位址是下一節點的位址。注意 鍊錶通過每個結點的鏈域將線性表的n個結點按其邏輯順序鏈結在一...
資料結構 靜態鍊錶
首先我們讓陣列的元素都是由兩個資料域組成,data和cur。也就是說,陣列的每乙個下標都對應乙個data和乙個cur。資料域data用來存放資料元素,也就是通常我們要處理的資料 而游標cur相當於單鏈表中的next指標,存放該元素的後繼在陣列中的下標。我們把這種用陣列描述的鍊錶叫做靜態鍊錶。陣列的第...
資料結構 靜態鍊錶
include using namespace std struct node typedef node linklist define maxsize 20 void init linklist list int getlength linklist list int malloc linklis...