成长

几天没来,很想念小北呢,不知道她怎么样了,是不是又写了好东西哈,等下过去瞧瞧。

最近,荣升网络部部长,那是一个忙,不过其中体会却是多多。

突然间,觉得我应该长大了吧。一直拒绝长大,但是现实是最诚实的 。

一切只不过是妄想而已。该面对的还是得面对。总有一些人是需要承担的。自己都不去面对,又在等待谁呢。

与其痴痴等待还不如主动出击。这样,主动权才在自己手中。

如此才有所成就。而我也想做一些成就出来。想让每个人看看。

稀疏矩阵的链式存储实现

按照课本上实现了稀疏矩阵的链式存储

#include<stdio.h>
#include <malloc.h>
struct MatNode
{
int row,col;
struct MatNode *right,*down;
union
{
   int val;
   struct MatNode *next;
}tag;
};

struct MatNode *CreateMat()
{
    int m,n,t,s,i,r,c,v;
struct MatNode *h[100],*p,*q;
printf("行数m,列数n,非零元素个数t:");
scanf("%d,%d,%d",&m,&n,&t);
p=(struct MatNode *)malloc(sizeof(struct MatNode));
h[0]=p;
p->row=m;
p->col=n;
s=m>n ? m:n;
for(i=1;i<=s;i++)
{
   p=(struct MatNode *)malloc(sizeof(struct MatNode));
   h[i]=p;
   h[i-1]->tag.next=p;
        p->row=p->col=0;
     p->down=p->right=p;
}
h[s]->tag.next=h[0];
for(i=1;i<=t;i++)
{
printf("\t第%d个元素(行号m,列号n,值v):",i );
scanf("%d,%d,%d",&r,&c,&v);
p=(struct MatNode *)malloc(sizeof(struct MatNode));
p->row=r;
p->col=c;
p->tag.val=v;
q=h[r];
while(q->right!=h[r]&&q->right->col<c)
   q=q->right;
p->right=q->right;
q->right=p;
q=h[c];
while(q->down!=h[c]&&q->down->row<r)
   q=q->down;
p->down=q->down;
}
return (h[0]);
}
void prmat (struct MatNode *hm)
{
struct MatNode *p,*q;
printf("\n 按行表输出矩阵元素:\n");
printf("row=%d col=%d\n",hm->row,hm->col);p=hm->tag.next;
while(p!=hm)
{
   q=p->right;
   while(p!=q)
   {
    printf("\t %d,%d,%d\n",q->row,q->col,q->tag.val);
    q=q->right;
   }
   p=p->tag.next;
}
}
main()
{
struct MatNode *hm;
hm=(MatNode *)malloc(sizeof(MatNode));
hm=CreateMat();
prmat(hm);
}

实现如下图

稀疏矩阵的链式存储实现
稀疏矩阵的链式存储实现

稀疏矩阵的转置

采用二元数组存储,转置较简单

利用2个for循环,互换i和j的值(m,n控制数组的大小)

如下


int i,j;

for(i=0;i<m;i++)

     for(j=0;j<n;j++)

       d[i][j]=s[j][i];

关于矩阵采用三元组表存储,需要:

1.讲矩阵的行列值互相交换。

2.讲三元组的i和j互换。

3.重排三元组的顺序。

关于3的具体实现


#include <stdio.h>
#include <malloc.h>
#define Max 100
#define FALSE 0
typedef struct
{
int val;
int row,col;
}Triple;

typedef struct
{
Triple data[Max];
int m,n,len;
}TSMatrix;

TSMatrix *FastTransposeTSMatrix(TSMatrix a,TSMatrix *b)
{
int col,t,i,j;
int num[Max],cpot[Max];
b->len=a.len;b->n=a.m,b->m=a.n;
if(b->len)
{
   for(col=1;col<=a.n;col++)
    num[col]=0;
   for(t=1;t<=a.len;t++)
    num[a.data[t].col]++;
   cpot[1]=1;
   for(col=2;col<a.n;col++)
    cpot[col]=cpot[col-1]+num[col-1];
   for(i=1;i<=a.len;i++)
   {
    col=a.data[i].col;j=cpot[col];
    b->data[j].row=a.data[i].col;
     b->data[j].col=a.data[i].row;
      b->data[j].val=a.data[i].val;
      cpot[col]++;
   }
}
return(b);
}
main()
{
TSMatrix A,*B;
B=(TSMatrix *)malloc(sizeof(TSMatrix));
int i;
A.len=5;A.m=5;A.n=5;
printf("input TSMatrix a:\n");
for(i=1;i<=5;i++)
   scanf("%d,%d,%d",&A.data[i].row,&A.data[i].col,&A.data[i].val);
B=FastTransposeTSMatrix(A,B);
printf("The Transpose TSMatrix is:\n");
for(i=1;i<=5;i++)
   printf("%d,%d,%d\n",B->data[i].row,B->data[i].col,B->data[i].val);
}

实现后如下

稀疏矩阵的转置
稀疏矩阵的转置

asp简单的转向

通过3.asp来登陆,然后利用check.asp来检查,保存公用变量,分别转向管理员和普通用户

3.asp

<%language="vbscript"%>
<html>
<head>
<title>登陆验证</title>
</head>
<body>
<p align="center" ><font color=red>登陆验证</font></p>
<form name="bd" method="post" action="check.asp">
<table width="100%" border="0" cellpadding="0" cellspacing="">
<tr><td width="50%" align="right" valign="middle" height="37"><font color=red>*</font>用户名:</td>
<td width="50%" align="left" valign="middle" height="37"><input type="text" name="yh" size="17"></td></tr>
<tr><td width="50%" align="right" valign="middle" ><font color=red>*</font>密码:</td>
<td width="50%" align="left" valign="middle"><input type="password" name="mm" size="18"></td></tr>
<tr><td align="right"><input type="submit" name="tj" value="提交"></td>
<td align="left"><input type="Reset" name="qx" value="取消"></td></tr>
</table>
</form>
</body>
</html>

check.asp

<%language="vbscript"%>
<%response.buffer=true%>
<html>
<head>
</head>
<title>登陆验证</title>
<body>
<% session("user")=request.form("yh")
   session("password")=request.form("mm")
if session("user")="admin" and session("password")="admin" then
Response.clear
Response.Redirect "admin.asp"
else
Response.Redirect "user.asp"
end if
%>
</body>
</html>

admin.asp

<%language="vbscript"%>
<html>
<head>
</head>
<title>登陆验证</title>
<body>
<%
Response.Write "欢迎管理员:"&session("user")&"你是管理员用户,可以进行添加,删除,修改,查询操作!"&"<br>"
%>
</body>
</html>

user.asp

<%language="vbscript"%>
<html>
<head>
</head>
<title>登陆验证</title>
<body>
<%
Response.Write "欢迎用户:"&session("user")&"你是一般用户,可以查询,修改自己信息的操作!"&"<br>"
%>
</body>
</html>