/**
***@title :考研資料結構複習
***@subject :線性表(鍊錶結構)
***@author :lxfhahaha
***@language: c語言
***@time : 2018/9/25 20:55
*****/
#include #include #include #define inital_size 50
#define max_size 100
#define ok 1
#define error 0
#define true 1
#define false 0
typedef int bool;
typedef int elemtype;
typedef int status;
//單鏈表節點型別
//lnode是普通節點,*linklist用來定義頭節點
typedef struct lnodelnode,*linklist;
//靜態鍊錶型別(在不能使用指標的情況下的替代品)
typedef struct slnodecomponent,slinklist[max_size];
//雙鏈表節點型別
typedef struct dulnodedulnode,*doublylinklist0;
//初始化乙個單鏈表,具有頭指標,頭結點,頭結點->next=null,data->length
status initlist(linklist *head)
(*head)->data=0;
(*head)->next=null;
return ok;
}//頭插法建立乙個鍊錶,長度為n
status createlisthead(linklist *list,int n)
return ok;
}//尾插法建立乙個鍊錶,長度為n
status createlisttail(linklist *list,int n)
return ok;
}//獲得鍊錶長度
int getlength(linklist list)
//列印list
status listprint(linklist list)
printf("list_length: %d \n",getlength(list));
printf("[");
for(itr=itr->next;itr!=null;itr=itr->next)
printf("]\n");
return ok;
}//獲取鍊錶中第i個位置處節點的資料元素
status getelem(linklist list,int i,elemtype *e)
if(i<1||i>getlength(list))
for(p=list;i>0;p=p->next,i--);
*e=p->data;
return ok;
}// 在鍊錶的指定位置(第i個節點)插入乙個節點
status insertlist(linklist *list, int i, elemtype data)
if(i<1||i>getlength(*list)+1)
for(itr=(*list)->next,pri=*list;i>1;i--)
n_node=(lnode*)malloc(sizeof(lnode));
if(!n_node)
n_node->data=data;
pri->next=n_node;
n_node->next=itr;
return ok;
}//給鍊錶追加乙個節點,在最末尾處增加
status insertlisttail(linklist *list, elemtype data)
for(itr=*list;itr->next!=null;itr=itr->next);
n_node=(lnode*)malloc(sizeof(lnode));
if(!n_node)
n_node->data=data;
n_node->next=null;
itr->next=n_node;
return ok;}
//刪除指定位置(第i個節點)處的節點
status deletelist(linklist *list, int i, elemtype *data)
if(i<1||i>getlength(*list))
for(pri=*list,itr=pri->next;i>1;i--)
pri->next=itr->next;
*data=itr->data;
free(itr);
return ok;
}// 清空整個鍊錶
資料結構考研複習 線性表2
2 廈門大學 2000 15分 有序線性表的合併 這個比較基礎,例如給出兩個鍊錶,h1 1 3 5 7 9 h2 0 2 4 合併的結果就是 0 1 2 3 4 5 7 9 這個比較簡單,直接上 先搭建測試環境 typedef struct linklist linklist 構建兩個有序鍊錶 vo...
考研資料結構 線性表
線性表是具有相同特徵資料元素的乙個有限序列。元素個數叫做線性表的長度,n n 0 表示,n 0 空表 只有乙個表頭元素,只有乙個表尾元素。表頭無前驅,表尾無後繼,除表頭和表尾外,其他元素只有乙個直接前驅,也只有乙個直接後繼。順序儲存結構 順序表 和鏈式儲存結構 鍊錶 兩種。順序表 連續儲存 順序儲存...
複習資料結構 線性表
線性表實現 陣列方式 隨機訪問很快,常數級別。但是增刪慢了,n級別。預先要知道線性表的大小 鍊錶方式 隨機訪問不急,n級別。但是增刪快,常數級別。就是c 的new delete操作效能不怎樣,可以用free list來維護增刪的節點。對於new delete操作有5倍左右提公升吧。基於陣列 指標構造...