2年ぶりにC++を使う
今日、高校の同級生がメールを送って助けを求めて、プログラムを書いて、2つの単鎖表の合併を実現して、昇順に並べました.
ああ、最初はよく勉强していませんでしたが、データの构造が下手で、头を硬くして、本を読んで、资料を调べて、やっと使いました.
C++が作成されましたが、チェックミスで午後を費やしました.
プログラム=データ構造+アルゴリズム
基礎がしっかりしていないと発展しにくい.そうしないと、コード民工になるしかない.
自分に腹を立てて、一歩一歩、自分の夢に向かってゆっくりと前進します.
無駄な青春は自分で争わなければならない.
ああ、最初はよく勉强していませんでしたが、データの构造が下手で、头を硬くして、本を読んで、资料を调べて、やっと使いました.
C++が作成されましたが、チェックミスで午後を費やしました.
#include <iostream>
using namespace std;
#define NUM 8
struct LNode
{
int data;
struct LNode *next;
};
typedef struct LNode * LinkList;
/**
*/
void create(LinkList &list, int a[])
{
struct LNode *p;
int i;
list->next = NULL;
for (i = NUM-1; i >= 0; --i)
{
p = new LNode;
p->data = a[i];
p->next = list->next;
list->next = p;
}
}
/**
*/
void show(LinkList list)
{
struct LNode *p;
p = list->next;
while (p)
{
cout << p->data << ' ';
p = p->next;
}
}
/**
*/
LinkList Merge(LinkList la, LinkList lb, LinkList &lc)
{
LNode *p;
// la , lb
if(la->data > lb->data)
{
lc = p = la;
la = la->next;
}
else
{
lc = p = lb;
lb = lb->next;
}
while(la && lb)
{
if(la->data <= lb->data)
{
p->next = la;
la = la->next;
}
else
{
p->next = lb;
lb = lb->next;
}
p = p->next;
}
//
p->next = (la ? la:lb);
return lc;
}
void main()
{
LinkList s;
LinkList u;
LinkList A;
int ss[NUM]={1,3,5,7,9,11,13,17};
int uu[NUM]={2,8,14,19,21,25,26,33};
s = new LNode;
u = new LNode;
A = new LNode;
create(s, ss);
create(u, uu);
cout<<" s :"<<endl;
show(s);
cout<<endl;
cout<<" u :"<<endl;
show(u);
cout<<endl;
Merge(s,u,A);
cout<<" A :"<<endl;
show(A);
cout<<endl;
}
プログラム=データ構造+アルゴリズム
基礎がしっかりしていないと発展しにくい.そうしないと、コード民工になるしかない.
自分に腹を立てて、一歩一歩、自分の夢に向かってゆっくりと前進します.
無駄な青春は自分で争わなければならない.