//線性表的鏈式表示和實現
#include#include#include//exit()等
typedef int status;
#define overflow -2
#define error 0
#define ok 1
//線性表的單鏈表儲存結構
struct lnode
;typedef lnode* linklist;//linklist是指向lnode型別的指標
//構造乙個空的線性表l
void initlist(linklist &l)
//返回線性表l中的元素的個數
int listlength(linklist l)
return i;
}//在帶有頭結點的單鏈線性表l中的第i個位置之前插入元素e
status listinsert(linklist l,int i,int e)
if(!p || j>i-1)//i小於1或者大於表長
return error;
s=(linklist)malloc(sizeof(lnode));//為插入的節點分配儲存空間
//插入到鍊錶中
s->data=e;
s->next=p->next;
p->next=s;
return ok;
}//在帶有頭結點的單鏈線性表l中,刪除第i個元素,並由e返回其值
status listdelete(linklist l,int i,int &e)//int &e,,,是e的引用
if(!p->next || j>i-1)//刪除位置不合理
return error;
//刪除並釋放節點
q=p->next;
p->next=q->next;//刪除
e=q->data;
free(q);//釋放
return ok;
}//從表頭開始列印鍊錶的元素
void printlist(linklist l)
printf("\n");
}void main()
(1)程式的執行結果如下:
(2)線性表的單鏈表儲存結構
struct lnode
;typedef lnode* linklist;//linklist是指向lnode型別的指標
帶有頭結點的且有2個節點的單鏈表示例:
(3)空的單鏈表:
被銷毀的單鏈表:
(4)在單鏈表l的第i個位置之前插入元素e:
(5)刪除l中的第i個位置的元素:
線性表的鏈式表示和實現(鏈式)
課程名 資料結構 實驗目的 1 掌握線性表的定義 2 掌握線性表的基本操作,如建立 查詢 插入和刪除等。實驗要求 定義乙個包含學生資訊 學號,姓名,成績 的順序表和煉表,使其具有如下功能 1 根據指定學生個數,逐個輸入學生資訊 2 逐個顯示學生表中所有學生的相關資訊 3 根據姓名進行查詢,返回此學生...
線性表的鏈式表示和實現
標頭檔案 函式的宣告 include include include include typedef int elemtype typedef struct node listnode,linklist listnode鍊錶的結點型別,linklist指向鍊錶結點的指標型別 void initlis...
線性表的鏈式表示和實現
線性表鏈式儲存結構的特點是 用一組任意的儲存單元儲存線性表的資料元素 這組儲存單元可以是連續的,也可以是不連續的 因此,為了表示每個資料元素ai與其直接後繼資料元素a i 1之間的邏輯關係,對資料元素ai來說,除了儲存其本身的資訊之外,還需儲存乙個指示其直接後續的資訊 即直接後續的儲存位置 這兩部分...