1.鍊錶的結點由資料域和指標域構成:
//定義鍊錶結構
typedef
struct lnodenode,*linklist;
2.建立鍊錶:
//建立鍊錶
status createlinklist(linklist &l,int n)
return ok;
}
3.獲取鍊錶中某一項
//獲取元素
status getitem(linklist l ,int i,elemtype &e)
if(!head ||j>i-
1) e = head->
data;
return ok;
}
4.鍊錶的遍歷
//遍歷鍊錶
status readlinklist(linklist l)
while(p!= null)
return ok;
}
5.鍊錶的插入
status inertitem(linklist l,int i,elemtype e)
if(!head&&j>i-1) return error;
temp = (linklist)malloc(sizeof(node));
if(!temp) return error;
temp->data = e;
temp->next = head->next;
head->next = temp;
return ok;
}
6.鍊錶的刪除
status deletelinklist(linklist l,int i)
if(!head->next||j>i-1) return error;
temp = head->next;
head->next = temp->next;
printf("delete item is: %d",temp->data);
free(temp);
return ok;
}
全部**:
#include
#include
#include
#define ok 1;
#define error 0;
typedef int status;
typedef int elemtype;
//定義鍊錶結構
typedef struct lnodenode,*linklist;
//建立鍊錶
status createlinklist(linklist &l,int n)
return ok;
}//遍歷鍊錶
status readlinklist(linklist l)
while(p!= null)
return ok;
}//獲取元素
status getitem(linklist l ,int i,elemtype &e)
if(!head ||j>i-1)
e = head->data;
return ok;
}status inertitem(linklist l,int i,elemtype e)
if(!head&&j>i-1) return error;
temp = (linklist)malloc(sizeof(node));
if(!temp) return error;
temp->data = e;
temp->next = head->next;
head->next = temp;
return ok;
}status deletelinklist(linklist l,int i)
if(!head->next||j>i-1) return error;
temp = head->next;
head->next = temp->next;
printf("delete item is: %d",temp->data);
free(temp);
return ok;
}int main()
回顧單鏈表,堆疊,佇列,雙鏈表資料結構
這幾個資料結構還是比較通俗易懂的,其中堆疊和佇列可以用陣列封裝實現,也可以用雙端鍊錶實現,等等不多複述。個人感覺資料結構真正複雜的是樹型結構,多叉樹,二叉樹,平衡二叉樹,b 樹,b 樹,紅黑樹,他們關係和區別,目前也說不清楚。這一塊是我感覺很薄弱的地方。簡單寫了個單鏈表,其他的懶得寫了,下篇開始搞搞...
資料結構習題(1) 單鏈表
部分基於之前的 1.設順序表va中的資料元素遞增有序。試寫一演算法,將x插入到順序表的適當位置上,以保持該錶的有序性。int insertsort pdseqlist pl,elem type val int index 0 for int i 0 i pl cursize i insertpos ...
資料結構單鏈表
初學資料結構,貼段自己編寫的單鏈表程式,希望自己能夠一直以強大的學習熱情持續下去!自勉!2012年3月30日 於大連 include using namespace std typedef struct node linklist,node linklist makelist int n void ...