順序表的實現比較簡單些,順序表可以用陣列模擬 ,如果使用陣列進行模擬,會比採用指標更簡單,但是老師建議用指標來寫,適合初學者回憶程式基本語法。
typedef struct listsqlist;
這一段的 typedef 我想了好久的,因為在之前老師說這是乙個定義性函式,但是連著乙個結構函式我就有些暈了。。(哭唧唧)
typedef struct list 指的是 用 list 來代替 struct 即 struct node==list node。
順序表需要三個元素:{1.訪問資料 2.訪問長度,3.訪問指標}
void initerlist(sqlist &l)
printf("請輸入要插入的數:\n");
cin>>t;
int j;
for(j=l.length-1;j>i-1;j--)//插入時,先進行i位置後的每一元素位置後移乙個單位。
l.elem[i]=t; //輸入插入元素.
printf("%d",l.elem[i]);
printf("插入完成!\n");
return;
}
每乙個表的最重要的地方就是表元素的插入與輸出
void coutlist(sqlist &l)
if(l.length!=0) }
return ;
}
表的輸出先進行判斷表是否為空,若不為空,則進行輸出操作。
其他的操作就沒什麼寫的了,注重就是了解順序表的插入與輸出基本就可以了
一下是自己理解並詢問大佬純手工**。。(頭好冷啊!!)
#include#include#includeusing namespace std;
const int list_add=10;
const int list_size=100;
typedef struct listsqlist;
void initerlist(sqlist &l)
printf("請輸入要插入的數:\n");
cin>>t;
int j;
for(j=l.length-1;j>i-1;j--)
l.elem[i]=t;
printf("%d",l.elem[i]);
printf("插入完成!\n");
return;
}void deletelist(sqlist &l)
for(int j=i+1;j<=l.length;j++)
l.length--;
printf("刪除完成!\n");
return;
}void prolist(sqlist &l)
printf("該元素的前驅為:%d",l.elem[i-1]);
return;
}void nextlist(sqlist &l)
printf("該元素的後驅為:%d",l.elem[i+1]);
return;
}void getelem(sqlist &l)
printf("該位置的數為%d",l.elem[i]);
return ;
}void coutlist(sqlist &l)
if(l.length!=0) }
return ;
}void showlist()
switch(c)
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
} getchar();
getchar(); }
return 0;
}
順序表的理解
傳統順序表 起始實體地址 邏輯位址 元素下標 儲存單元大小 每乙個元素所占用幾個位元組 所查詢元素的實體地址 資料元素本身連續儲存,每個元素所佔的儲存單元大小固定相同 元素的下標是其邏輯位址,而元素儲存的實體地址是元素實際記憶體位址 可以通過儲存區起始位址加上邏輯位址與儲存單元的大小 c 的乘乘積計...
hasOwnProperty自我理解
暫時不考慮es6中symbol,hasownproperty 方法返回的是乙個物件上是否包含乙個指定屬性,如果含有則返回true,如果沒有則返回false。和in 運算子不同,該方法會忽略掉那些從原型鏈上繼承到的屬性。這一特性嚐嚐用來檢測乙個物件上是否包含自身擁有的屬性,並且不是從原型鏈上繼承而來的...
Nsis的自我理解
nsis 指令碼語言的理解 1.nsis 語言的理解 nsis指令碼語言比較獨特,類似於巨集彙編,語法有些像c語言,感覺是純面向過程的東東。功能還算強大,能呼叫windows api,支援用動態鏈結庫形式的擴充套件。能呼叫和建立核心物件。例如可用用createmuteex 用來建立單例項。此處深有體...