<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
>
<channel>
<title><![CDATA[程程网]]></title> 
<atom:link href="http://www.hwdmn.com/rss.php" rel="self" type="application/rss+xml" />
<description><![CDATA[Hwd Home]]></description>
<link>http://www.hwdmn.com/</link>
<language>zh-cn</language>
<generator>www.emlog.net</generator>
<item>
    <title>【百度智能云】千帆狂欢季，AI+算力双核引爆！云服务器/千帆大模型1折起，企业上云成本直降90%！</title>
    <link>http://www.hwdmn.com/?post=4</link>
    <description><![CDATA[<p>🔥 爆款直降，错过再等一年！<br />
✅ 千帆大模型平台1折起：企业专属AI大脑，零代码训练专属模型，对话、文生图、智能客服……1分钟部署，成本直降90%！<br />
✅ 云服务器CVM/GPU机型1折抢：2核4G轻量云主机低至9.9元/月，高性能GPU算力集群支持大模型训练，弹性扩容无压力！<br />
✅ AI原生应用全家桶：智能文档处理、数字人直播、代码助手等10+场景化工具，开箱即用，效率狂飙300%！</p>
<p>🚀 为什么选百度智能云？<br />
🔹 技术硬核：文心大模型底座+千帆平台，全球TOP3 AI算力集群，稳定率99.99%；<br />
🔹 成本杀手：企业版免费试用30天，1折特惠叠加满减券，上云成本直降85%；<br />
🔹 场景全覆盖：从初创团队到千亿集团，提供AI开发、智能营销、数据安全等全链路解决方案；<br />
🔹 服务0门槛：7×24小时专家护航，1对1架构设计，迁移部署0风险！</p>
<p>🎯 限时加码福利<br />
❗ 新用户专享：注册即领3000元代金券，首单再享折上折！<br />
❗ 企业特权：年付用户免费升级VIP专线，带宽提速3倍！</p>
<p>💡 用户真实反馈<br />
&quot;用千帆平台3天就上线了AI客服，成本比自建团队节省70%！&quot;——某电商CTO<br />
&quot;GPU服务器弹性扩容太香了，大模型训练效率翻倍！&quot;——某AI创业公司负责人</p>
<p>🔥 机会不等人，立即抢占AI算力红利！</p>
<h1>百度智能云# #千帆大模型# #企业上云首选</h1>
<h1><a href="https://cloud.baidu.com/campaign/ambassador-product/index.html?ambassadorId=6f1c9a59e64f41b39a3e1abd72ff33f2" title="活动入口，点击前往&gt;&gt;">活动入口，点击前往&gt;&gt;</a></h1>]]></description>
    <pubDate>Thu, 08 May 2025 13:47:56 +0800</pubDate>
    <dc:creator>Hwd</dc:creator>
    <guid>http://www.hwdmn.com/?post=4</guid>
</item>
<item>
    <title>图的遍历--使用邻接表作为存储结构的遍历（DFS、BFS）C语言</title>
    <link>http://www.hwdmn.com/?post=3</link>
    <description><![CDATA[<pre><code class="language-c">#include &lt;stdbool.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt; 
#define MAX_VERTEX_NUM 20 //最大顶点个数 
typedef char VertexType;
typedef int VRType;
typedef int InfoType;    //图中边上的权值信息 
typedef int QElemType;   //队列中节点数据类型 

/* 图的深度优先遍历和广度优先遍历 */
//邻接表存储图
typedef struct ArcNode
{
    int adjvex;        //该弧所指向的顶点的位置 
    struct ArcNode *nextarc;   //指向下一条弧的指针 
    InfoType *info;           //该弧相关的信息的指针，如权值 
 }ArcNode;

 typedef struct VNode
 {
    VertexType data;     //顶点信息 
    ArcNode *firstarc;   //指向第一条依附于该顶点的弧指针 
 }VNode,AdjList[MAX_VERTEX_NUM];
 typedef struct
 {
    AdjList vertices;    
    int vexnum,arcnum;   //顶点数和弧树 
 }ALGraph;

//创建用于广度优先遍历的队列
typedef struct QNode
{
    QElemType data;
    struct QNode *qnext;
}QNode,*PQNode;

typedef struct Queue
{
    PQNode front;
    PQNode rear;
}Queue,*PQueue;

//初始化一个空队列 
PQueue initQueue()
{
    PQueue pqueue = (PQueue)malloc(sizeof(Queue));
    PQNode pqnode = (PQNode)malloc(sizeof(QNode));
    if(pqnode==NULL)
    {
        printf("队列头空间申请失败！\n");
        exit(-1);
    }
    pqueue-&gt;front = pqueue-&gt;rear = pqnode;
    pqnode-&gt;qnext = NULL;
    return pqueue;
}

//队尾入队
void enQueue(PQueue pqueue,QElemType data)
{
    PQNode pqnode = (PQNode)malloc(sizeof(QNode));
    if(pqnode==NULL)
    {
        printf("队列结点申请失败！\n");
        exit(-1);
    }
    pqnode-&gt;data = data;
    pqnode-&gt;qnext = NULL;
    pqueue-&gt;rear-&gt;qnext = pqnode;
    pqueue-&gt;rear = pqnode;
 } 
//判断队列是否为空
bool isEmpty(PQueue pqueue)
{
    if(pqueue-&gt;front == pqueue-&gt;rear)
        return true;
    return false;
 } 
//队头出队
QElemType deQueue(PQueue pqueue)
{
    if(isEmpty(pqueue))
    {
        printf("队列为空\n");
        exit(-1);
    }

    PQNode pqnode = pqueue-&gt;front-&gt;qnext;
    pqueue-&gt;front-&gt;qnext = pqnode-&gt;qnext;
    if(pqnode == pqueue-&gt;rear)
        pqueue-&gt;rear = pqueue-&gt;front;
    QElemType data = pqnode-&gt;data;
    free(pqnode);
    return data;

}

//确定图中顶点位置编号 
int locateVex(ALGraph alg,char v)
{
    int i;
    for(i=0;i&lt;alg.vexnum;i++)
    {
        if(alg.vertices[i].data == v)
        return i;
    }
    return -1;
 } 

//创建无向图
void createALGraph(ALGraph *alg)
{
    int i,j,v,k;
    printf("输入图的顶点数和边数\n");
    scanf("%d %d",&amp;(*alg).vexnum,&amp;(*alg).arcnum);
    printf("输入顶点名称\n");
    //fflush(stdin); 
    getchar();
    for(i = 0;i&lt;(*alg).vexnum;i++)
    {
        printf("输入第%d个顶点名称:",i);
        scanf("%c",&amp;(*alg).vertices[i].data); 
        (*alg).vertices[i].firstarc = NULL;
        // fflush(stdin);             //fflush(stdin)  getchar()清除上次输入的缓存 
        getchar();
    }

    printf("输入图的边信息\n");
    char v1,v2;
    ArcNode *s,*p;
    for(k = 0;k&lt;(*alg).arcnum;k++)
    {
        printf("输入第%d条边的两个节点v1 v2：",k);
        scanf("%c %c",&amp;v1,&amp;v2);
        i = locateVex((*alg),v1);
        j = locateVex((*alg),v2);
        //由于是无向图因此一条边需要关联两个节点 
        p = (ArcNode*)malloc(sizeof(ArcNode));
        p-&gt;adjvex = j;
        p-&gt;nextarc = NULL;
        if((*alg).vertices[i].firstarc==NULL)
        {
            (*alg).vertices[i].firstarc = p;
        }
        else
        {
            s = (*alg).vertices[i].firstarc;
            while(s-&gt;nextarc!=NULL)
                s = s-&gt;nextarc;
            s-&gt;nextarc = p;
        }

        p = (ArcNode*)malloc(sizeof(ArcNode));
        p-&gt;adjvex = i;
        p-&gt;nextarc = NULL;
        if((*alg).vertices[j].firstarc==NULL)
        {
            (*alg).vertices[j].firstarc = p;
        }
        else
        {
            s = (*alg).vertices[j].firstarc;
            while(s-&gt;nextarc!=NULL)
                s = s-&gt;nextarc;
            s-&gt;nextarc = p;
        }
        //fflush(stdin);
    getchar();
    } 
 } 

bool visited[MAX_VERTEX_NUM];  //标记结点是否被遍历过，否为flase,是为true;

//深度优先遍历无向图 
void DFS(ALGraph alg,int v)
{
    //从第v个顶点出发递归的深度优先遍历图alg
    ArcNode *p;
    visited[v] = true;
    printf("%c ",alg.vertices[v].data);
    for(p = alg.vertices[v].firstarc;p!=NULL;p = p-&gt;nextarc)
    {
        if(!visited[p-&gt;adjvex])
            DFS(alg,p-&gt;adjvex);
     } 
 } 

void DFSTraverse(ALGraph alg)
{
    //对邻接表存储的无向图进行深度优先遍历
    printf("深度优先遍历序列：");
    int v;
    for(v=0;v&lt;alg.vexnum;v++)
        visited[v] = false;
    for(v=0;v&lt;alg.vexnum;v++)
    {
        if(!visited[v])
            DFS(alg,v);
     } 
}

//广度优先遍历
void BFSTraverse(ALGraph alg)
{
    printf("广度优先遍历序列：");
    PQueue pqueue = initQueue();
    ArcNode *p;
    int i;
    QElemType v;
    for(i=0;i&lt;alg.vexnum;i++)
        visited[i] = false;
    for(i=0;i&lt;alg.vexnum;i++)
    {
        if(!visited[i])
        {
            visited[i] = true;
            printf("%c ",alg.vertices[i].data);
            enQueue(pqueue,i);
            while(!isEmpty(pqueue))
            {
                v = deQueue(pqueue);
                for(p = alg.vertices[v].firstarc;p!=NULL;p = p-&gt;nextarc)
                {
                    if(!visited[p-&gt;adjvex])
                    {
                        printf("%c ",alg.vertices[p-&gt;adjvex].data);
                        visited[p-&gt;adjvex] = true;
                        enQueue(pqueue,p-&gt;adjvex);
                    }
                }
            }
        }
    }

 } 
int main(int argc, char *argv[]) {
    ALGraph alg;
    createALGraph(&amp;alg);   //创建无向图 
    DFSTraverse(alg);
    printf("\n"); 
    BFSTraverse(alg);
    printf("\n"); 
    return 0;
}
</code></pre>]]></description>
    <pubDate>Fri, 16 Dec 2022 14:55:43 +0800</pubDate>
    <dc:creator>Hwd</dc:creator>
    <guid>http://www.hwdmn.com/?post=3</guid>
</item></channel>
</rss>