1.
#include <stdio.h>
#define maxsize 32575
typedef int SElemType;
typedef struct stack{
SElemType *base,*top;
int stacksize;
}stack;
int Initstack(stack S){
S.base = new stack[maxsize];
if(!S.base)
return -1;
S.base = S.top;
S.stacksize = maxsize;
return 0;
}
int push(stack S,SElemType e){
if(S.top -S.base == S.stacksize)
return -1;
*(S.top++) = e;
return e;
}
int pop(stack S,SElemType e){
if(S.top == S.base)
return -1;
e = *--S.top;
return 1;
}
int stackEmpty(stack S){
if(S.base == S.top)
return -1;
return 0;
}
//十进制转换为八进制
int main(int a){
Initstack(S);
stackEmpty(S);
while(a){
push(S,a%8);
a = a/8;
}
while(!stackEmpty(S)){
pop(S,e);
printf("%d",e);
}
delete S;
return 0;
}
--------------------Configuration: hello - Win32 Debug--------------------
Compiling...
hello.cpp
D:\vc2016.10.23\MyProjects\first2\hello.cpp(10) : error C2440: ‘=‘ : cannot convert from ‘struct stack *‘ to ‘int *‘
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
D:\vc2016.10.23\MyProjects\first2\hello.cpp(39) : error C2065: ‘S‘ : undeclared identifier
D:\vc2016.10.23\MyProjects\first2\hello.cpp(46) : fatal error C1903: unable to recover from previous error(s); stopping compilation
执行 cl.exe 时出错.
hello.obj - 1 error(s), 0 warning(s)
2.区别理解
p= NULL
P-> next =NULL
3.邻接表 后面的链表为什么不用数组 减少循环
4.、、注意边界、特殊情况、、抽象实际图 --》 本质关系图
5.
区别
SqQueue &Q
SqQueue *Q
SqQueue Q
6.
什么时候使用
-》
。
多看些例子也许会明白,特别是连个连起来都要使用的情况
7.
前、后插法建单链表为什么要带头结点
构造一个空栈,栈顶置空,是不是和不带头结点一个意思?
8.
++i i++ --i i--
是由很大的区别 即使是在循环条件中也是非常重要的
注意n》 = 0 应该有否等于号 边界问题很重要
这里循环从0开始, ++i 就没有了0,直接从下标1开始
//十进制转任意进制
#include <stdio.h>
int main(){
int i,n,r,a[2000];
while(scanf("%d,%d",&n,&r)!= EOF){
i =0;
if(n<0){
printf("-");
n = -n;
}
while(n>0){
a[i++] = n%r;
n /= r;
}
for(i -=1;i>=0;--i){
printf("%X",a[i]);
printf("\n");
}
}
return 0;
}