导航:首页 > 编程语言 > 两站共享空间编程

两站共享空间编程

发布时间:2022-09-22 01:02:10

1. 数据结构中的两栈共享空间有点不理解求解!

这个应该是以一个数组实现两个栈的共享。
-----------------------------------------------
| | | | | | | | | | | 长度为10的数组

------------------------------------------------
top1(-1) top2(10)
如上图,假设初始top1为-1,top2为11,栈1push了一个数字2,栈2push了一个数字3之后,数组变成如下形式,top1为0,top2为9:

-----------------------------------------------
| 2 | | | | | | | | | 3 |

-----------------------------------------------
top1(0) top2(9)

当整个数组存满的时候top1+1=top2。比如栈1存了2、5、4、6、7,栈2存了3、9、4、8、1,此时top1=4,top2=5
----------------------------------------------------
| 2 | 5 | 4 | 6 | 7 | 1 | 8 | 4 | 9 | 3 |

----------------------------------------------------
top1(4) top2(5)

2. 若栈采用顺序存储方式存储,现两栈共享空间

晕.这么简单的问题也拿出来问
1 2 3 .m
| |
那么当他们满的时候,两个指针相邻
那就是
top[1]+1=top[2]
top[1]在top[2]左边相邻了

3. 设两个栈(stack1,stack2)共享一个一维数组空间s[m],它们的栈底分别设在数组的两端,试编写一个算法,

我们的想法是很简单的根在0的位置,后来假设的当前位置,然后我的左子节点2I +1,+2 2I右子节点。如根的左子节点的右子节点。左子节点,右子节点。定义一个空值没有子节点,如空。
假设交界处的三名成员:值,左,右
假定数组是全球性的,如果不是作为一个参数。
递归的实现是相对简单的:
无效btree2array(节点,指标)
{
??(节点?== NULL)
????阵列[索引] =空;
?数组[索引] =节点值;
??btree2array(节点左,指数* 2 + 1);
??btree2array(节点 - >指数* 2 + 2);
}

开头的呼叫句子:
btree2array(根,0);
此外,虚拟机,超低价团购

4. 两栈共享一个存储空间,判定栈满的条件是什么

应该是top[1]=top[2] 吧,因为两个栈顶都对到一起了才能说明栈的存储已达到极限了,我是这么理解的。

5. 2个域名2个网站共用一个空间的方法

很多空间支持多域名绑定,但是不支持子目录绑定,可以考虑如下几种方法来实现一个空间放多个域名站点的方法,只是其他站点都需要在一个目录下大开。

方法一:用js跳转

  1. 在空间上分别绑定www.aaa.com和www.bbb.com

  2. 把www.aaa.com网站文件传到根目录,把www.bbb.com网站传到./bbb/目录

  3. 把下面的代码保存为domain.js,然后上传到空间根目录

    javaScript代码

    switch(location.host){

    case'www.bbb.com':

    location.href="http://www.boaer.com/bbb/"

    break;

    }

  4. 往空间根目录的首页的<head>与</head>之间加入

    <scriptlanguage='javascript'src="/bbb/domain.js"></script>

  5. 当输入www.aaa.com访问时看不到任何变化,但是当输入www.bbb.com访问时,浏览器自动跳转到www.bbb.com/bbb/。

  6. 这样便实现了同一个空间安装2个网站了,要实现多个网站可以依此类推。或者直接在头部添加类似如下代码:

    <scriptlanguage=javascript>

    if(document.domain=='www.boaer.com')

    this.location="www.bbb.com"+this.location.pathname+this.location.search;

    </script>

方法二:(推荐)

用server.Transfer("")来实现一个空间多个站的方法

  1. 先将所有的域名绑定到您的虚拟主机上,然后将虚拟主机根目录中的index.asp(首页文件)里加入下列代码就可以了:ASP/Visual Basic代码

    <%

    sn=lcase(Request.ServerVariables("SERVER_NAME"))'用于获取用户是通过哪个域名访问的,并转换成小写

    ifsn="www.abc.net"orsn="abc.net"thenserver.Transfer("default1.asp")

    ifsn="www.def.net"orsn="def.net"thenserver.Transfer("index.html")

    %>

    效果:如果输入的域名是www.abc.net或abc.net的话,就访问default1.asp页面,如果是用def.net或www.def.net的话就调用index.html文件。

  2. 网上还有一些教程是用response.redirect来实现转向,但在这里建议使用server.Transfer("")来实现这个功能,好处有以下几个方面:

    不会出现页面跳转,直接输入网址后,网址后不会带任何文件,访问者不会看出你的两个网站是放在同一虚拟主机上。
    server.Transfer("")不会阻挡搜索引擎对你的网站的收录,而response.redirect可不一定。

方法三:(最方便管理,一个空间放的站越多越推荐)

方法是利用一个asp文件通过浏览器输入的域名,判定是要打开那个文件夹里的站点,来实现一个虚拟放置多个站点(缺点例如打开abc.com,在浏览器中看到的是abc.com/b因为站点在b目录下)

其他说明:如果虚拟主机不支持子目录绑定,这是非常有效的办法
实现方法如下 :先建立一个默认主页index.asp
然后把A站放在A文件夹下,B站放在B文件夹下,C站放在C文件夹下。
index.asp网页文件如下 :
ASP/Visual Basic代码

  1. <%ifRequest.ServerVariables("SERVER_NAME")="www.a.com"then

    response.redirect"a/index.asp"

  2. elseifRequest.ServerVariables("SERVER_NAME")="www.b.com"then

    response.redirect"b/index.asp"

  3. elseifRequest.ServerVariables("SERVER_NAME")="www.c.com"then

    response.redirect"c/index.asp"

  4. else

    response.redirect"aaa/index.asp"

    endif%>

  5. 代码作用说明:
    如果用户访问 www.a.com 程序跳转至 空间目录下 a/index.asp
    如果用户访问 www.b.com 程序跳转至 空间目录下 b/index.asp
    如果用户访问 www.c.com 程序跳转至 空间目录下 c/index.asp
    如果用户访问 没有指定的 程序跳转至 空间目录下 aaa/index.asp
    怎么样,简单吧。

  6. elseif Request.ServerVariables("SERVER_NAME")="www.b.com " then
    response.redirect "b/index.asp"
    这段是可以无限复制的,一个虚拟主机放几百个站点就是自己设置的了只要把域名都绑定在虚拟主机上,然后设置这个域名所绑定的站点就OK了,这种要看虚拟主机能绑多少个玉米。能绑100个的话就能放100个站,并且利于网站管理,这样做可以根据文件夹名,就知道这个是哪个站。


  7. php空间的方法

  8. 利用PHP是可以实现这个功能的。不但让他运行多个网站,而且还可以实现每个网站独立域名。下面把详细的步骤说明一下。首先了解一下$_SERVER['HTTP_HOST']变量。这个变量在PHP中是用来取浏览器中所输入的地址的。可以实现上面的功能了


  1. 先把你需要的两个域名解析到空间。比如:www.***com和www.***.cn两个域名。如果有更多的域名也没关系。方法是一样的。

  2. 把默认文档设置为index.php,当然空间需要是支持PHP的哦。:)

3、利用if ... else 来判断来访地址,并作出分析。代码如下:
<?if($_SERVER['HTTP_HOST']=="www.123.com";){?>
<META HTTP-EQUIV="Refresh" CONTENT="1;URL=http://www.123.com/main">
<?}else if($_SERVER['HTTP_HOST']=="mycalf.com"){?>
<META HTTP-EQUIV="Refresh" CONTENT="1;URL=http://123.com/main">
<?}else if($_SERVER['HTTP_HOST']=="www.456.cn";){?>
<META HTTP-EQUIV="Refresh" CONTENT="1;URL=http://www.456.cn/home">
<?}else{?>
<META HTTP-EQUIV="Refresh" CONTENT="1;URL=http://www.456cn/home">
<?}?>
4、完成
这里要说明的一点是,有的时候域名是用大写的,那么就需要对$_SERVER['HTTP_HOST']这个变量进行处理,来让他把所有的字符转换成小写。
代码如下:
<?
$querystring = preg_replace(array("/()/","/_/"),array("","-"),$_SERVER["QUERY_STRING]);
$I = strtolower(trim($_SERVER['HTTP_HOST']));
?>
如果是这样写,就需要把上面的<?if($_SERVER['HTTP_HOST']=="www.123.com";){?>这句变为<?if($I=="www.123.com";){?>,这样就可以在输入网址是大写的时候,也可以正常访问了。
这个方法也有一个不足点,就是需要在域名后面跟一个目录名。但是如果你不怕乱的话,也可以把两个网站都放到根目录下。但是推荐是每个网站一个目录。现在许多空间商,都支持5个以内的域名的解析。这样就可以买一个空间,拥有5个网站了。
这个办法的优势也是有的,他每个域名都是可以访问其他网站的,比如输http://www.123.com/home/与访问http://www.123.cn/域名得到的效果是一样的。
其实空间麻烦的是数据库问题,不过数据库也是可以多个网站共享一个数据库的,只要不让表名一样就可以了。访问起来道理差不多。OK。


(二)、PHP跳转代码实现一个网站空间绑定多个域名,建立多个网站

先建立一个默认主页index.php,然后把A站放在A文件夹下,B站放在B文件夹下,C站放在C文件夹下,index.php网页文件如下

<?php
switch ($_SERVER["HTTP_HOST"])
{
case "www.a.com":
header("location:a/index.php");
break;
case "www.b.com":
header("location:b/index.php");
break;
case "www.boaer.com":
header("location:cboaer/index.php");
break;
}
?>

如果访问 www.a.com程序跳转至 空间目录下 a/index.php

如果访问 www.b.com程序跳转至 空间目录下 b/index.php

如果访问 www.boaer.com程序跳转至 空间目录下 boaer/index.php

利用一个php文件通过浏览器输入的域名,判定他是要打开那个文件夹里的站点,来实现一个虚拟放置多个站点(缺点例如打开abc.com,在浏览器中看到的是abc.com/b因为站点在b目录下)

其他说明:如果虚拟主机不支持子目录绑定,这是唯一有效的办法

JS版本

<script>try {if( self.location == "http://玉米一/" ) {
top.location.href = "http://玉米一/目录";
}
else if( self.location == "http://玉米二/" ) {
top.location.href = "http://玉米二/目录";
}
else if( self.location == "http://玉米三/" ) {
top.location.href = "http://玉米三/目录";
}
else if( self.location == "http://玉米四/" ) {
top.location.href = "http://玉米四/目录";
}
else {document.write ("错误的访问地址")}} catch(e){}</script>

利用Javascript语言
echo "<scriptlanguage='javascript'>";
echo " location='网址';";
echo "</script>";

用javascript定时刷新页面
<script type="text/javascript">

setInterval("window.location.href=window.location.href;",5000);
</script>

window.location.Reload()应该是刷新.(如果有数据提交的话,会提示是否提交的(是和否选项))
window.location.href=window.location.href;

最好不要用location.reload(),而用 location=location比较好,还有在模式窗口(showModalDialog和 showModelessDialog)前者不能用。

X秒自动跳转

header("refresh:3;url=http://www.163.com");
print('正在加载,请稍等...<br>三秒后自动跳转~~~');
<p>{MsgInfo}正在跳转,请稍后......</p>

<p>如果没有自动跳转,请点<ahref="{JumpUrl}"><strong>这里</strong></a>继续!</p& gt;
<META HTTP-EQUIV="refresh" CONTENT='{JumpDelay};URL={JumpUrl}'>
<script language="javascript">
function Jump()
{
window.location = '{JumpUrl}';
}
document.onload = setTimeout("Jump()" , {JumpDelay} * 1000);
</script>

类goto.php跳转使用方法简析

看下演示

http://www.a.com/goto.php?url=http://www.b.com/

可以直接跳到b网站,但是又不算外链。

使用方法是个goto.php文件,传到ftp空间根目录,把www.a.com改成你的域名,后面b的改成外链地址就可以了

把下面的存为goto.php

<? $url=$_GET["url"];header("Location:".$url);?>

更换永久链接

如链接是:mcooo.com_a.com

在头部加上以下代码让他自动跳转到a.com正确的链接地址上,

<?php
if(strripos($_SERVER['REQUEST_URI'],"_"))
{
$url="http://.com/".substr($_SERVER['REQUEST_URI'],strripos($_SERVER['REQUEST_URI'],"_")+1);
header('Location: '.$url);
}
?>

6. 两个栈共享一段内存区域是什么意思

当程序中同时使用两个栈时,可以将两个栈的栈底设在向量空间的两端,让两个栈各自向中间延伸。如下图所示:

当一个栈的元素较多,超过向量空间的一半时,只要另一个栈的元素不多,那么前者就可以占用后者的部分存储空间。

只有当整个向量空间被两个栈占满(即两个栈顶相遇)时,才会发生上溢,因此两个栈共享一个长度为m的向量空间

7. c++两个栈共享一个数组空间算法

#include<iostream>
using namespace std;

template<typename Comparable>
class DoubleStack
{
public:
DoubleStack( int m = 10 ) : max( m )
{
V = new Comparable[ max ];
leftTop = -1;
rightTop = max;
}
//..true means ok, and false means the stack is full
bool push( int i, Comparable x )
{
if ( i == 0 )
{
if( leftTop < rightTop - 1 )
{
V[ ++ leftTop ] = x;
return true;
}
else
return false;
}
else
{
if ( rightTop > leftTop + 1 )
{
V[ -- rightTop ] = x;
return true;
}
else
return false;
}
}
//..you'd better check if the stack is empty before using the function
Comparable pop( int i )
{
if ( i == 0 )
return V[ leftTop -- ];
else
return V[ rightTop ++ ];
}
bool isEmpty( int i ) {
if ( i == 0 )
return leftTop == -1;
else
return rightTop == max;
}
bool isFull( int i )
{
if ( i == 0 )
return leftTop + 1 == rightTop;
else
return rightTop - 1 == leftTop;
}
~DoubleStack() { delete V; }

private:
Comparable *V;
int max;
int leftTop;
int rightTop;
};

int main()
{
DoubleStack<int> s;
int x, i;
while( cin >> x >> i && x != -1 )
{
s.push( i, x );
if ( s.isEmpty( i ) )
cout << "empty" << endl;
else if ( s.isFull( i ) )
cout << "full" << endl;
}

while( !s.isEmpty( 0 ) )
cout << s.pop( 0 ) << ' ';
cout << endl;
while( !s.isEmpty( 1 ) )
cout << s.pop( 1 ) << ' ';
cout << endl;

return 0;
}

/*
1 0
2 0
3 0
4 0
5 0
6 1
7 1
8 1
9 1
10 1
-1 0
*/

8. 设有两个栈s1和s2共享存储空间c[1,m0],其中一个栈底设在c[1]处,另一个栈底设在c[m0]处,分别编写s1和s2的

void push(x,i)
int x,i;
{
if (top1==top2-1)
printf(“overflow!\n”)
else if (i==1)
{top 1++;c[top1]=x;
}
else
}
top2--;c[top2]=x;
}

9. 两栈共享一个存储空间,判定栈满的条件是什么

肯定是top[1]+1=top[2]啊,你想要是top[1]=top[2]那么,两个栈顶在同一个位置,等于一个位置存了两个元素,说明你前一步插入的元素没有空间了,就是1和2相邻的时候已经满了。

阅读全文

与两站共享空间编程相关的资料

热点内容
怎么将安卓变成win 浏览:451
手机文件管理在哪儿新建文件夹 浏览:721
加密ts视频怎么合并 浏览:773
php如何写app接口 浏览:800
宇宙的琴弦pdf 浏览:395
js项目提成计算器程序员 浏览:942
pdf光子 浏览:832
自拍软件文件夹名称大全 浏览:327
程序员留学移民 浏览:51
梁中间部位箍筋加密区 浏览:119
频谱分析pdf 浏览:752
乐2怎么升级安卓70 浏览:174
java中获取日期 浏览:507
单片机74hc245 浏览:274
美国历史上的总统pdf 浏览:753
程序员脱单实验室靠不靠谱 浏览:460
php中间四位手机号 浏览:871
永旺app怎么样了 浏览:518
压缩空气流量计算软件 浏览:651
智慧聊天app怎么激活 浏览:926