e=p->data 功能:显示单链表表示的线性表的所有数据元素 输入:线性表L 输出:无 void display (LinkList L) while(p) printf("n%d",p->data) p-p->next, maino Linklist La, Lb; /only define head pointer, no head node/ clrscrO a=distInto DistInto: ListInsert(La, 1, 7) ListInsert( La, 2, 9) ListInsert(La, 3, 6) t(La,3,12 List Delete(La, 1); display (La);
*e=p->data; return OK; } /********************************************************** ** 功能:显示单链表表示的线性表的所有数据元素 ** ** 输入:线性表 L ** ** 输出: 无 ** **********************************************************/ void display(LinkList L) { LNode *p; p=L->next; while (p) { printf("\n%d",p->data); p=p->next; } } main() { LinkList La,Lb; /*only define head pointer,no head node*/ int a; clrscr(); La=ListInit(); Lb=ListInit(); ListInsert(La,1, 7); ListInsert(La,2, 9); ListInsert(La,3, 6); ListInsert(La,3, 12); ListDelete(La,1); GetElem(La,3,&a); printf("a=%d",a); display(La); }
3.顺序栈 <a>静态分配 栈空间大小固定,不能扩充 typedef struct Elem Type elem[ maxleng+1];∥栈元素空间 Int top ∥顶指针 qstack为结构类型 qstack S ∥s为结构类型变量 其中:stop-顶指针; selem(s top-顶元素 b>动态分配 预先分配一个适当的栈空间,当发生溢出时在扩充 # define stacK INit size100/*初始分配的适当空间 # define STACKINcrement10/*每次发生溢出时扩充的增量* typedef struct Elem Type *base;∥栈元素空间 Int top; 顶指针 int stacksize qstack ∥ SqStack为结构类型 Sastack s为结构类型变量 其中:stop-顶指针; s. base(s top-顶元素 #define TRUe #define false o int clear stack( Sqstack*S)/*清空栈*/ /率容率本本*本******本**********率幸春幸率幸** 功能:测试栈是否为空 六输入:栈对象S 输出:空时返回TRUE,非空时返回 FALSE 孝水客*客*水本水客水客水客 int StackEmpty (SqStack S) I if (S top==-1) return TRUE return False: *涂水**客水*客*称水*水客水*水*称*水客**客*涂水客水客水*客水水*水水*水*客*客客水
3. 顺序栈 <a> 静态分配 栈空间大小固定,不能扩充 typedef struct { ElemType elem[maxleng+1];//栈元素空间 int top; //顶指针 }sqstack; //sqstack 为结构类型 sqstack s; //s 为结构类型变量 其中: s.top----顶指针;s.elem[s.top]----顶元素 <b> 动态分配 预先分配一个适当的栈空间,当发生溢出时在扩充。 #define STACK_INIT_SIZE 100 /*初始分配的适当空间*/ #define STACKINCREMENT 10 /*每次发生溢出时扩充的增量*/ typedef struct { ElemType *base;//栈元素空间 int top; //顶指针 int stacksize }SqStack; // SqStack 为结构类型 SqStack s; //s 为结构类型变量 其中: s.top----顶指针;s.base[s.top]----顶元素 #define TRUE 1 #define FALSE 0 int ClearStack(SqStack *S) /*清空栈*/ { S->top=-1;} /********************************************************** ** 功能:测试栈是否为空 ** ** 输入:栈对象 S ** ** 输出: 空时返回 TRUE, 非空时返回 FALSE ** **********************************************************/ int StackEmpty(SqStack S) { if (S.top==-1) return TRUE; else return FALSE; } /**********************************************************