第八章十一题,修改了 ,用单链表实现str.(不好意思又看错条件了,这次没有错误了。)powerby KTL

原创 2006年05月26日 17:32:00

#include "stdio.h"
#include "stdlib.h"
#include "string.h"

typedef char datatype;

typedef struct node
{
 datatype data;
 struct node * pNext;
}linklist;

void PUSHL(linklist **S,datatype e)
{
 linklist *p;
 p=(linklist*)malloc(sizeof(linklist));
 p->data=e;
 p->pNext=*S;
 *S=p;
}//入栈
datatype POPL(linklist **S)
{
 datatype X;
 if((*S)==NULL)
 {
  printf("栈溢出/n");
  return -1;
 }
 else
 {
  X=(*S)->data;
  (*S)=(*S)->pNext;
  return(X);
 }
}//出栈

bool MYFUNC(linklist *strl)
{
 linklist*q,*p;
 int n=0,i=0;
 datatype ch;
 p=strl;
 while(p)
 {
  p=p->pNext;
  n++;
 }
 p=strl;
 q=(linklist*)malloc(sizeof(linklist));
 while(i<(n/2))//i是为了记数,让一半的字符入栈;
 {
  PUSHL(&q,p->data);
  p=p->pNext;
  i++;
 }
 i++;//使i指向未入栈的字符;
 while(i<n)
 {
  if(i==(n+1)/2)//判断是否偶数个字符;
   p=p->pNext;
  ch=p->data;
  if(ch!=POPL(&q))//调用的时候用了**;
   return false;
  p=p->pNext;
  i++;
 }
 return true;
}//关键函数判断是否对称

int main()
{
 datatype str[100];
 int i=0;
 linklist * strl,*p,*h;
 strl=(linklist *)malloc(sizeof(linklist));
 h=strl;
 printf("请输入字符串:");
 scanf("%s",str);
 strl->data=str[i];
 i++;
 strl->pNext=NULL;
 while(str[i]!='/0')
 {
  p=(linklist *)malloc(sizeof(linklist));
  p->data=str[i];
  i++;
  strl->pNext=p;
  strl=p;
  strl->pNext=NULL;
 }
 strl=h;
 if(MYFUNC(strl)){
  printf("是对称字符串。。。/n");
  return 1;
 }
 else{
  printf("不是对称字符串。。。/n");
  return 0;
 }
 return 0;
}

十一、实现队列的方法二(单链表的复用)

通过对单链表代码的复用,实现队列 一、LinkList.h #ifndef _LINKLIST_H_ #define _LINKLIST_H_ typedef void...

反转单链表 和 将数组按照某种条件分为前后两个部分

what did not kill you, make you stronger! 今天下午终于完结这几日笼在心头的乌云,彻底打败! 之前读到第三章的"反转链表的题目", 当时决定顺带复习国庆放假前的...

单链表的实现-简单操作

  • 2016年11月18日 22:50
  • 401KB
  • 下载

没有头结点的单链表[c语言实现]

#include #include /* * 单链表是线性表链式存储的一种,其储存不连续。 * 单链表的数据结构中包含两个变量:数据和指向下一结点的指针。 * 一个结点只知道他的下一个结点的地...

c语言单链表的实现及测试

  • 2017年07月20日 13:47
  • 2KB
  • 下载

单链表的实现

  • 2013年10月06日 21:39
  • 215KB
  • 下载

c++实现单链表创建,删除,遍历,插入,修改操作

#include #include #include using namespace std; struct Node { int data; stru...

O n 复杂度实现单链表的逆转

  • 2014年08月11日 10:35
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第八章十一题,修改了 ,用单链表实现str.(不好意思又看错条件了,这次没有错误了。)powerby KTL
举报原因:
原因补充:

(最多只允许输入30个字)