概念:邏輯上相鄰的兩個資料元素在物理位置上可能相鄰也可能不相鄰,這中儲存結構為非順序映像或鏈式映像。
特點:線性表的鏈式儲存結構的特點是可以用一組任意的儲存單元來儲存線性表中的資料,這組儲存單元可以是連續的,也可以是不連續的。(由於這種特性,單鏈表中要取得第i個元素,必須從第乙個元素開始尋找,因此單鏈表是非隨機儲存結構。)
結點(儲存映像)包括兩個域:指標域和資料域。
1、頭結點:在單鏈表的第乙個結點前附設的乙個結點。
頭結點的資料域可以不存任何資料,也可以儲存與鍊錶有關的一些資料。頭結點的指標域指向第乙個結點的位置。
2、首元結點:鏈中儲存線性表中第乙個資料元素的結點。
3、頭指標:指向頭結點的指標。
#include
#include
typedef
struct lnodelnode,*linklist;
void list_delete(linklist l,int i,int &e);
void list_insert(linklist &l,int e);
void get_elem(linklist l,int i,int &e);
int main()
p=l->next;
//列印插入鍊錶的5個數
while(p)
printf("\n");
//刪除鍊錶中的第3為數,並列印其值
int e;
list_delete(l,3,e);
printf("刪除的值為:%d\n",e);
//列印刪除成功之後鍊錶內容
p=l->next;
while(p)
printf("\n");
//尋找鍊錶中的第三位數
get_elem(l,3,e);
printf("鍊錶中的第三位數是:%d\n",e);
return0;}
void get_elem(linklist l,int i,int &e)
e=p->data;
}void list_delete(linklist l,int i,int &e)
//如果刪除位置不合理就異常退出
if(!(p->next)&&j>i-1)
exit(-1);
q=p->next;
e=q->data;
p->next=q->next;
free(q);//釋放刪除那個元素原來所佔的記憶體
}void list_insert(linklist &l,int e)
q=(linklist)malloc(sizeof(int));
q->data=e;
q->next=p->next;
p->next=q;
}
線性表鏈式儲存
線性表鏈式儲存結構的建立 刪除最小值結點 值唯一 刪除某個指定值 不唯一 就地逆置 反向輸出 遞增排序 刪除重複結點 根據奇偶序號劃分成兩個帶頭結點的單鏈表。include stdio.h include stdlib.h typedef struct lnode lnode,llist void ...
線性表 鏈式儲存
基類 ifndef linearlist h define linearlist h filename linearlist.h creater qianchenglong date 2011 10 18 comments 線性表的抽象基類 template class linearlist lin...
線性表鏈式儲存結構
include include 線性表鏈式儲存結構 typedef struct lnodelnode,linklist int initlist linklist l 初始化 int endinsert linklist l,int e p next s return 1 末尾插入元素 int g...