(尹承祐の熱血資料アルゴリズム)第3章/4章
3663 ワード
Abstract Data Type pg74~77
どのオブジェクトの機能がリストされますか.
はい.)財布のadt
1. int take_out_money(wallet pw, int coin_num, int cash_num)
最初のパラメータが住所を伝える財布からお金を出します.
2番目の因子で取り出す硬貨の数を表し、3番目の因子で取り出す紙幣の数を表す.
出さなければならないお金の総額を返し、それに応じたお金の差額もあります.
2. int put_in_money(wallet pw, int coin_num, int cash_num)
最初のパラメータ伝達アドレスの財布にお金を入れます
2番目の因子で入れる硬貨の数を伝え、3番目の因子で入れる紙幣の数を伝えます.
硬貨や紙幣の数は、入れる量が増えるにつれて増えていきます.
シナリオリストを使用してpg 78を実装
1.adt定義
2.adtを使用してmain関数を定義する
3.adt実装リストの使用
アレイadtpg 80
void ListInit(List plist);
void LInsert(List plist, LData data);
int LFirst(List plist, LData pdata);
int LNext(List plist, LData pdata);
LData LRemove(List plist);
int LCount(List * plist);
アレイ主関数pg 81
1.ヘッドファイルの定義
2.挿入と照会
3.削除
接続リストを使用したリストの実装
1.adt定義
2.adtを使用してmain関数を定義する
3.adt実装リストの使用
接続リストadtpg 123
void ListInit(List *plist);
void LInsert(List plist, LData data);
int LFirst(List plist, Ldata data);
int LNext(List plist, Ldata data);
LData LRemove(List plist)
int LCount(list plist);
void SetSortRule(List plist, int (comp)(LData d1, LData d2)); =>追加!!
SetSortRule()関数について
返されるのはintで、2つのLDataタイプのパラメータを渡す関数のアドレス値です.
Double Linked list sort main関数pg 150
1.リストを初期化し、ノードを挿入する
2.クエリーデータ
3.ノードの削除
4.同梱
ヒープノード
すべての場合、同じ挿入手順で「スタックノードベースの接続」リストのロック
どのオブジェクトの機能がリストされますか.
はい.)財布のadt
1. int take_out_money(wallet pw, int coin_num, int cash_num)
最初のパラメータが住所を伝える財布からお金を出します.
2番目の因子で取り出す硬貨の数を表し、3番目の因子で取り出す紙幣の数を表す.
出さなければならないお金の総額を返し、それに応じたお金の差額もあります.
2. int put_in_money(wallet pw, int coin_num, int cash_num)
最初のパラメータ伝達アドレスの財布にお金を入れます
2番目の因子で入れる硬貨の数を伝え、3番目の因子で入れる紙幣の数を伝えます.
硬貨や紙幣の数は、入れる量が増えるにつれて増えていきます.
シナリオリストを使用してpg 78を実装
1.adt定義
2.adtを使用してmain関数を定義する
3.adt実装リストの使用
アレイadtpg 80
void ListInit(List plist);
void LInsert(List plist, LData data);
int LFirst(List plist, LData pdata);
int LNext(List plist, LData pdata);
LData LRemove(List plist);
int LCount(List * plist);
アレイ主関数pg 81
#include<stdio.h>
#incldue "ArrayList.h"
int main(void)
{
List list;
int data;
ListInit(&list);
LInsert(&list, 11); LInsert(&list,11);
LInsert(&list, 22); LInsert(&list,22);
Linsert(&list, 33);
printf("현재 데이터의 수: %d \n", LCount(&list));
if(LFirst(&list,&data))
{
printf("%d", data);
while(LNext(&list, &data))
printf("%d", data);
}
printf("\n");
if(LFirst(&list, &data))
{
if(data ==22)
LRemove(&list);
while(LNext(&list, &data))
{
if(data==22)
LRemove(&list);
}
}
printf("현재 데이터의 수: %d \n", LCount(&list));
if(LFirst(&list, &data))
{
printf("%d", data);
while(LNext(&list, &data))
printf("%d", data);
}
printf("\n");
return 0;
}
インプリメンテーション1.ヘッドファイルの定義
2.挿入と照会
3.削除
接続リストを使用したリストの実装
1.adt定義
2.adtを使用してmain関数を定義する
3.adt実装リストの使用
接続リストadtpg 123
void ListInit(List *plist);
void LInsert(List plist, LData data);
int LFirst(List plist, Ldata data);
int LNext(List plist, Ldata data);
LData LRemove(List plist)
int LCount(list plist);
void SetSortRule(List plist, int (comp)(LData d1, LData d2)); =>追加!!
SetSortRule()関数について
返されるのはintで、2つのLDataタイプのパラメータを渡す関数のアドレス値です.
Double Linked list sort main関数pg 150
#include <stdio.h>
#include "DLinkedList.h"
int WhoIsPrecede(LData d1, LData d2) {
if(d1 < d2)
return 0;
else
return 1;
}
int main(void) {
List list;
LData data;
ListInit(&list);
SetSortRule(&list, WhoIsPrecede);
LInsert(&list, 11); LInsert(&list, 11);
LInsert(&list, 22); LInsert(&list, 22);
LInsert(&list, 33);
printf("현재 데이더의 수: %d\n", LCount(&list));
if(LFirst(&list, &data)) {
printf("%d ", data);
while(LNext(&list, &data)) {
printf("%d ", data);
}
}
printf("\n\n");
if(LFirst(&list, &data)) {
if(data == 22)
LRemove(&list);
while(LNext(&list, &data)) {
if(data == 22)
LRemove(&list);
}
}
printf("현재 데이더의 수: %d\n", LCount(&list));
if(LFirst(&list, &data)) {
printf("%d ", data);
while(LNext(&list, &data)) {
printf("%d ", data);
}
}
printf("\n\n");
return 0;
}
インプリメンテーション1.リストを初期化し、ノードを挿入する
2.クエリーデータ
3.ノードの削除
4.同梱
ヒープノード
すべての場合、同じ挿入手順で「スタックノードベースの接続」リストのロック
Reference
この問題について((尹承祐の熱血資料アルゴリズム)第3章/4章), 我々は、より多くの情報をここで見つけました https://velog.io/@kungfuk11/3장4장テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol