//
// 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...