理解線性結構的基本概念,掌握兩種基本的儲存結構:順序儲存結構(順序表)和鏈式儲存結構(單鏈表);用c語言實現在兩種儲存結構上的對應操作(包括建立、刪除插入元素、遍歷等),鞏固強化c程式設計的基本方法和能力。
完成順序表的建立、元素刪除、遍歷等操作,具體內容如下:
有序的一組整數{1,2,3,4,6},設計順序表並實現以下操作:
a.初始化乙個空的順序表;
b.從鍵盤依次輸入上述資料新增到順序表中;
c.刪除表中的第四個資料元素;
d.顯示b、c操作後順序表中的內容。
#include #define listsize 100 //表空間的大小
typedef int datatype;//資料型別
typedef int status;
//定義順序表結構體
typedef struct
sqlistnode,*sqlist;
//順序表的初始化
void initsqlist(sqlist l)//順序表的初始化即將表的長度置為0
status delete(sqlist l,int i)
l->length--;
return 1;
}int insert_sl(sqlist l,int i,datatype x)//按位置插入資料,i-指定插入位置(i前面插入),x-插入值
if(i<1 || i>listsize)//檢驗插入元素是否合法
else
l->data[i-1]=x;//插入資料元素
l->length++;//表長加1
} return 1;
}int sqlistprint(sqlist l)//列印順序表
printf("順序表:n");
for(i=0;ilength;i++)
printf("%d ",l->data[i]);
printf("n");
return 1;
}int main()
sqlistprint(lp);//列印順序表
printf("請輸入您要刪除的位置:");
scanf("%d",&delete_location);
printf("n");
isdeleted=delete(&l,delete_location);
if(isdeleted)
return 1;
}
刪除單鏈表中所有值為x的元素
刪除所有值為x的單鏈表中的元素 首先,我們先考慮第一種情況,就是說值刪除第乙個值為x的元素,這個比較簡單,只需要挨個比較x和鍊錶節點的值,找到值相同的節點的前乙個就可以刪除這個節點了。然後我們可以考慮兩種辦法第一種就是遞迴的去刪除,這個比較簡單,只需要刪除第乙個值和我們要刪除的值一樣的節點,然後把下...
遞迴刪除單鏈表中所有值為x的元素 單鏈表逆序
有解釋,可能一開始看不到,更著動手多敲幾遍就能掌握了。加油。題目描述 給定乙個帶頭結點的單鏈表,請將其逆序。即如果單鏈表原來為head 1 2 3 4 5 6 7,那麼逆序後變為head 7 6 5 4 3 2 1。先定義好鍊錶結構 coding utf 8 思路 1 首先將1 2 3 4變成1 4...
DS 003 順序表 刪除所有值為x的元素
題目 長度為n的順序表l,編寫乙個時間複雜度為o n 空間複雜度為o 1 的演算法,該演算法刪除線性表中所有值為x的資料元素。演算法思想 用k記錄不等於x的元素個數,即需要儲存的元素個數。邊掃瞄l邊統計k,並將不等於x的元素向前放置k位置上,最後修改l的長度。void del x sqlist l,...