針對單鏈表的演算法特性來實現一下問題:
(1)定義單鏈表的儲存結構。
(2)編寫建立乙個單鏈表的演算法。
(3)編寫插入元素演算法。
(4)編寫刪除元素演算法。
(5)編寫反向輸出單鏈表中所有元素的演算法。
(6)編寫演算法主程式。
(7)除錯執行,記錄結果。
編寫乙個標頭檔案:linklist.h
#include#include//------設定資料元素的型別為:
typedef int elemtype;;
typedef int status;
#define error 0
#define ok 1
#define null 0
#define true 1
#define false 0
//------線性表單鏈表儲存結構------
typedef struct lnodelnode,*linklist;
//建立乙個單鏈表
void createlist_l(linklist head, int data)
temp->next = p;}
void printl(linklist head)
printf("\n");
}//插入演算法
int listinster_l(linklist l, int e, int i)
if (!p || j>i - 1) return error;
linklist s = (linklist)malloc(sizeof(lnode));
s->data = e;
s->next = p->next;
p->next = s;
return ok;
}//刪除演算法
status listdelete_l(linklist &l,int i,elemtype &e)
if(!(p->next))return error;
q=p->next;p->next=q->next;
e=q->data;free(q);
return ok;
}//listdelete_l
//反向列印演算法
linklist reverseprint_l(linklist head, int e)
實現**的主函式 test.c
#include"linklist.h"
#include#include#define n 10
int main()
課堂所學的**,留紀! 資料結構 單鏈表實現
線性表的鏈式儲存結構的特點是用一組任意的儲存單元儲存線性表的資料元素 這組儲存單元可以是連續的,也可以是不連續的 因此,為了表示每個資料元素與其直接後繼資料元素之間的邏輯關係,對資料元素來說,除了儲存其本身的資訊之外,還需儲存乙個指示其直接後繼的資訊 即直接後繼的儲存位置 這兩部分資訊組成資料元素的...
資料結構 單鏈表實現
在鏈式儲存中,節點之間的儲存單元位址可能是不連續的。鏈式儲存中每個結點都包含兩部分 儲存元素本身的資料域和儲存結點位址的指標域。結點中的指標指向的是下乙個結點,也就是儲存的下乙個結點的位址。1.建立鍊錶 在建立鍊錶時,頭結點不儲存資料,但可以儲存鍊錶的資訊。struct header 儲存資料的結點...
資料結構 單鏈表實現
package list public class singlelinkedlist private class node public node object data 頭插法 public void headinsert object data 尾插法 public void tailinser...