線性表的鏈式表示和實現

2021-07-08 17:52:25 字數 1749 閱讀 1509

//線性表的鏈式表示和實現

#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來說,除了儲存其本身的資訊之外,還需儲存乙個指示其直接後續的資訊 即直接後續的儲存位置 這兩部分...