鍊錶,樹,順序表操縱

2021-10-12 16:39:39 字數 1668 閱讀 7311

//

// main.c

// 2020專業課

//// created by cj on 2020/11/16.

//#include #include #include #include #define maxsize 10

typedef structsqnode,*sqlist;

typedef struct lnodelnode,*linklist;

typedef struct nodenode,*tree;

//初始化單鏈表

linklist initsqlink()

rear->next=null;

return l;

}//初始化順序表

sqlist initsqlist(sqlist l)

l->length=4;

return l;

}//迴圈單鏈表

void foreachlink(lnode *l)

printf("\n");

}//迴圈陣列

void foreacharr(sqnode *l)

printf("\n");

}//刪除資料表中最小的乙個元素,並把刪除元素用最後乙個元素替代

void deletemin(sqlist l)

}l->data[pos]=l->data[l->length-1];

}//順序表中多少個最大節點數

int countmax(sqlist l)else

}return k;

}//順序表刪除所有值為x的元素

void deletex(sqlist l,int x)else

}l->length-=k;

}//有序表刪除給定值s與t之間的元素

void deletes_t(sqlist l,int s,int x)

}l->length-=k;

}//鍊錶刪除所有值為x的元素

void deletexlist(linklist l,int x)else

}}//單鏈表刪除s與t之間的數

void deletes_tlink(linklist l,int x,int t)else

}}//有序鍊錶刪除重複的元素

void deletesamelink(linklist l)else

}}//單鏈表逆置

void reserve(linklist l)

}//兩個遞增的單鏈表合併,成乙個遞減的

void merge(linklist la,linklist lb)else

}if(pa)

while (pb)

}//二叉樹的前序

void preforeach(tree t)

}//中序

void orderforeach(tree t)

}//統計葉子結點

int count(tree t)

if(t->lchild==null && t->rchild==null)else

}//求樹的高度

int height(tree t)else

if(lheight>rheight)else

}//輸入兩個正整數 m,n,求其最大公約和最小公倍數

void find()

順序表及鍊錶

順序表 將表中元素乙個接乙個的存入一組連續的儲存單元中,這種儲存結構是順序結構。利用陣列單元的物理位置上的 優點 儲存空間連續,允許元素隨機訪問 缺點 長度固定,在分配記憶體之前要先確定好陣列長度,致使可能造成空間浪費 單鏈表 用一組任意的儲存單元存放線性表的元素,只包含指向下乙個節點的指標,只能單...

複習 順序表 鍊錶

鍊錶 鏈式儲存的線性表,簡稱鍊錶。鍊錶由多個鍊錶元素組成,這些元素稱為節點。結點之間通過邏輯連線,形成鏈式儲存結構。儲存結點的記憶體單元,可以是連續的也可以是不連續的。邏輯連線與物理儲存次序沒有關係。鍊錶分為兩個域 值域 資料域 用於存放結點的值 鏈域 指標域 用於存放下乙個結點的位址或位置 從記憶...

順序表與鍊錶

單向鍊錶 雙向鍊錶 迴圈鍊錶 插入刪除過程要注意,初始指標應指向鍊錶尾節點 若當插入到頭前時,找不到前驅節點 當在更新尾節點時需要更新頭指標 鍊錶排序使用氣泡排序最為適合 資料結構 結構定義 結構操作 include include include include define malloc2 my...